2017-07-10 3 views
-1

Ich habe eine Anwendung mit Struts und Struts-Kacheln 1.3 auf einem JBoss 5.1 Server mit 1.6 JDK ohne Probleme. , wenn ich auf einen Tomcat-Server 9 mit 1.8 JDK migriert beginne ich erhalte eine Fehlermeldung:struts Kacheln 1.3 auf tomcat 9 jdk 1.8 [Fehler] Keine Aktion Konfig für die angegebene URL gefunden

GRAVE: "Servlet.service()" pour la servlet [action] a lancé une exception 
org.apache.struts.chain.commands.InvalidPathException: No action config found for the specified url. 
    at org.apache.struts.chain.commands.AbstractSelectAction.execute(AbstractSelectAction.java:71) 
    at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51) 
    at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191) 
    at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:305) 
    at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191) 
    at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283) 
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913) 
    at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:634) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) 
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:710) 
    at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:580) 
    at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:516) 
    at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:895) 
    at org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:497) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at org.apache.struts.tiles.TilesUtilImpl.doInclude(TilesUtilImpl.java:129) 
    at org.apache.struts.tiles.TilesUtil.doInclude(TilesUtil.java:152) 
    at org.apache.struts.tiles.taglib.InsertTag.doInclude(InsertTag.java:764) 
    at org.apache.struts.tiles.taglib.InsertTag$InsertHandler.doEndTag(InsertTag.java:896) 
    at org.apache.struts.tiles.taglib.InsertTag.doEndTag(InsertTag.java:465) 
    at org.apache.jsp.WEB_002dINF.pages.layout.layout_jsp._jspx_meth_tiles_005finsert_005f0(layout_jsp.java:2297) 
    at org.apache.jsp.WEB_002dINF.pages.layout.layout_jsp._jspService(layout_jsp.java:647) 
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) 
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:443) 
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385) 
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) 
.... 

Kann mir bitte helfen?

Der Fehler tritt auf, wenn ich die Anwendung URL: http://localhost:8080/myapp/authentification.do

speziell, wenn der Server macht layout.jsp bei tiles:insert tag:

<tiles:insert attribute="corner" /> 

Die Seite mit Fliesen Vorlage layout.jsp Schnipsel aus Layout gerendert wird .jsp:

<body> 
     <div id="loading"></div> 
     <c:set var="selectedTab" scope="request"><tiles:getAsString name="selectedTab"/></c:set> 

     <c:if test="${sessionScope.utilisateur !=null}"> 
      <div id="bulle"><img src="${imgBulle}" border="0" /></div> 
     </c:if> 
        <div id="corner"><tiles:insert attribute="corner" /></div> 

     <div id="container"> 
      <div id="top"> 
       <div id="title">       
        <h1><%@ include file="/WEB-INF/pages/include/title.jsp"%></h1>  
        <div id="logo"><img src="${imgLogo}" border="0" /></div> 



       </div> 
      </div> 

Die entsprechende Konfiguration aus der Datei "tiles.xml" :

<definition name="page_corner" page="/WEB-INF/pages/layout/corner.jsp" /> 
<definition name="template" path="/WEB-INF/pages/layout/layout.jsp"> 
     <put name="title" value="" /> 
     <put name="corner" value="page_corner" /> 
     <put name="messages" value="Messages" /> 
     <put name="informations" value="Informations" /> 
     <put name="content" value="" /> 
     <put name="tabs" value="" /> 
     <put name="selectedTab" value="" /> 
    </definition> 

Antwort

0

Ich habe es geschafft, mein Problem zu lösen und die Anwendung läuft jetzt.
Das Problem liegt an der JSP 2.3-Engine. Wenn tiles:insert ein Attribut aufruft, das mit einem leeren Wert definiert ist, wird der Fehler ausgelöst.

Die Lösung, die für mich funktionierte, ist eine leere JSP-Datei empty.jsp erstellen, definieren Sie es in Kacheln und verwenden Sie es, wo immer ich brauche.

Lösung:

<definition name="page_empty" page="/WEB-INF/pages/layout/empty.jsp" /> 

und die oben (in der Frage) Template-Konfiguration wäre:

<definition name="template" path="/WEB-INF/pages/layout/layout.jsp"> 
    <put name="title" value="" /> 
    <put name="corner" value="page_corner" /> 
    <put name="messages" value="Messages" /> 
    <put name="informations" value="Informations" /> 
    <put name="content" value="page_empty" /> 
    <put name="tabs" value="page_empty" /> 
    <put name="selectedTab" value="page_empty" /> 
</definition> 

PS: <put name="corner" value="page_corner" /> in template definiert war nicht die Ursache des Problems, sondern eine andere <put name="corner" value="" /> definiert in tiles_login, die template erweitert.

<definition name="tiles_login" extends="template"> 
    <put name="title" value="application.authentification.title" /> 
    <put name="corner" value="" /> 
    <put name="bandeau" value="" /> 
    <put name="content" value="" /> 
</definition> 
Verwandte Themen