Bonjour,
Depuis que j'ai voulu passé à la dernière version de Struts (et que j'ai galéré afin que les nouvelles librairies soient prises en compte), les pages qui utilisent Tiles (apparemment) ne marchent plus.
Je pense que l'erreur vient de la non-reconnaissance de la librairie Tiles car l'erreur en question dit que les chemins commençant par ".quelquechose" ne sont pas valides. Les ".quelquechose" sont justement définis par Tiles.
Je précise qu'avant de faire la mise à jour, mon projet NetBeans utilisait les librairies Struts intégrées.
Voici l'erreur que j'obtiens:
Voici mon fichier web.xml:Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 type Rapport d'exception message description Le serveur a rencontré une erreur interne () qui l'a empêché de satisfaire la requête. exception javax.servlet.ServletException: Le chemin .home ne commence pas par le caractère "/" org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1858) org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:459) javax.servlet.http.HttpServlet.service(HttpServlet.java:709) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368) cause mère java.lang.IllegalArgumentException: Le chemin .home ne commence pas par le caractère "/" org.apache.struts.chain.commands.servlet.PerformForward.handleAsForward(PerformForward.java:93) org.apache.struts.chain.commands.servlet.PerformForward.perform(PerformForward.java:82) org.apache.struts.chain.commands.AbstractPerformForward.execute(AbstractPerformForward.java:51) org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:48) org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190) org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304) org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190) org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:280) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1858) org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:459) javax.servlet.http.HttpServlet.service(HttpServlet.java:709) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368) note La trace complète de la cause mère de cette erreur est disponible dans les fichiers journaux de Apache Tomcat/5.5.17.
Mon fichier struts-config.xml:Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <session-config> <session-timeout> 30 </session-timeout> </session-config> <welcome-file-list> <welcome-file> index.html </welcome-file> <welcome-file> index.htm </welcome-file> <welcome-file> index.jsp </welcome-file> </welcome-file-list> <listener> <listener-class>nist.bfrl.vcctl.application.VcctlServletContextListener</listener-class> </listener> <listener> <description>HttpSessionListener</description> <listener-class>nist.bfrl.vcctl.application.VcctlHttpSessionListener</listener-class> </listener> <servlet> <servlet-name>action</servlet-name> <servlet-class> org.apache.struts.action.ActionServlet </servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> <init-param> <param-name>application</param-name> <param-value>ApplicationResources.properties</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> </web-app>
Et enfin mon fichier tiles-defs.xml:Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd"> <struts-config> <!-- ========== Form Bean Definitions ================= --> <form-beans> <form-bean name="loginForm" type="nist.bfrl.vcctl.admin.LoginForm" /> <form-bean name="generateMicrostructureForm" type="nist.bfrl.vcctl.operation.microstructure.GenerateMicrostructureForm" /> </form-beans> <!-- ========== Action Mapping Definitions ============ --> <action-mappings> <!-- ========== Action Mapping Definitions - Admin ============ --> <action path="/admin/login" type="nist.bfrl.vcctl.admin.LoginAction" name="loginForm" scope="request"> <forward name="success" path=".home" /> <forward name="failure" path=".admin.login" /> </action> <!-- ========== Action Mapping Definitions - Build Microstructure ============ --> <action path="/operation/mixing" type="nist.bfrl.vcctl.operation.MixingAction" name="generateMicrostructureForm" scope="session"> <forward name="success" path=".mixing" /> <forward name="failure" path=".home" /> </action> <action path="/operation/hydrate/distribute-clinker-phases" type="nist.bfrl.vcctl.operation.microstructure.SetupDistributeClinkerPhasesAction" name="generateMicrostructureForm" scope="session"> </action> <action path="/operation/distribute-clinker-phases/launch" type="nist.bfrl.vcctl.operation.microstructure.DistributeClinkerPhasesAction" name="generateMicrostructureForm" scope="session"> <forward name="update" path=".mixing" /> <forward name="launch" path="/operation/build-microstructure/launch.do" /> </action> </action-mappings> <message-resources parameter="MessageResources" null="false" /> <!-- Use Tiles library --> <plug-in className="org.apache.struts.tiles.TilesPlugin" > <set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml" /> <set-property property="definitions-debug" value="2" /> <set-property property="definitions-parser-details" value="2" /> <set-property property="definitions-parser-validate" value="true" /> <!-- Set Module-awareness to true --> <set-property property="moduleAware" value="true" /> </plug-in> </struts-config>
Merci d'avance.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN" "http://struts.apache.org/dtds/tiles-config_1_1.dtd"> <tiles-definitions> <definition name=".default.layout" path="/layout/defaultLayout.jsp"> <put name="title" value="Virtual Cement and Concrete Testing Laboratory 7.0" /> <put name="header" value="/common/header.jsp" /> <put name="menu" value="/common/menubar.jsp" /> <put name="content" value="/pages/home.jsp" /> <put name="footer" value="/common/footer.jsp" /> </definition> <definition name=".home" extends=".default.layout" /> <definition name=".mixing" path="/pages/mixing.jsp" /> <definition name=".admin.login" path="/index.jsp"/> </tiles-definitions>