Bonjour à tous,
Je suis actuellement sur un projet JEE 5/Struts 1 qui fonctionne sous Tomcat 5.5.
Je tente actuellement de "maveniser" ce projet et d'inclure le plugin Jetty (7.6).
Pour le moment, je bloque sur la page de connexion (authentification FORM par j_security_check) qui n'arrive pas à récupérer les CSS/JS et autres données statiques correctement.
Lorsque je lance ma page web : "http://localhost:8081/MonProjet", le serveur redirige vers la page de connexion "http://localhost:8081/MonProjet/jsp/common/login.jsp". Cette modification d'URL pose problème car le navigateur n'arrive plus à récupérer la feuille de style à l'URL "./css/style.css".
Une fois que je me connecte, la redirection vers la page d'accueil fonctionne bien est l'URL est "http://localhost:8081/MonProjet/accueil.do"
L'arborescence de mon projet est la suivante :
Le contenu de mon web.xml (une partie) :
La JSP login.jsp :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167 <?xml version="1.0" encoding="ISO-8859-1"?> <web-app 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" version="2.4"> <display-name>Projet</display-name> <context-root>/MonProjet</context-root> <context-param> <param-name>carto_url</param-name> <param-value>${carto.url}</param-value> </context-param> <listener> <listener-class>org.gci.web.listeners.HibernateListener</listener-class> </listener> <!-- Standard Action Servlet Configuration (with debugging) --> <servlet> <servlet-name>action</servlet-name> <servlet-class>org.gci.web.actions.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>debug</param-name> <param-value>2</param-value> </init-param> <init-param> <param-name>detail</param-name> <param-value>2</param-value> </init-param> <init-param> <param-name>projectconfig</param-name> <param-value>/WEB-INF/cfg/config.xml</param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet> <servlet> <servlet-name>servletLog4j</servlet-name> <servlet-class>org.gci.web.servlets.Log4jServlet</servlet-class> <init-param> <param-name>log4j-file</param-name> <param-value>WEB-INF/classes/log4j.properties</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet> <servlet-name>operationManager</servlet-name> <servlet-class>org.gci.web.servlets.PasserelleOperationServlet</servlet-class> <init-param> <param-name>defaultPollTime</param-name> <param-value>86400000</param-value> </init-param> <!-- polling time en millisecondes --> <load-on-startup>9</load-on-startup> </servlet> <servlet> <servlet-name>dailyManager</servlet-name> <servlet-class>org.gci.web.servlets.PasserelleDailyServlet</servlet-class> <init-param> <param-name>defaultPollTime</param-name> <param-value>86400000</param-value> </init-param> <!-- polling time en millisecondes --> <load-on-startup>9</load-on-startup> </servlet> <!-- Standard Action Servlet Mapping --> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <error-page> <error-code>403</error-code> <location>/jsp/erreurs/page403.jsp</location> </error-page> <error-page> <error-code>404</error-code> <location>/jsp/erreurs/notfound.jsp</location> </error-page> <error-page> <error-code>500</error-code> <location>/jsp/erreurs/interne.jsp</location> </error-page> <error-page> <error-code>408</error-code> <location>/jsp/erreurs/timeout.jsp</location> </error-page> <!-- Struts Tag Library Descriptors --> <jsp-config> <taglib> <taglib-uri>/tags/struts-bean</taglib-uri> <taglib-location>/WEB-INF/struts-bean.tld</taglib-location> </taglib> <taglib> <taglib-uri>/tags/struts-html</taglib-uri> <taglib-location>/WEB-INF/struts-html.tld</taglib-location> </taglib> <taglib> <taglib-uri>/tags/struts-logic</taglib-uri> <taglib-location>/WEB-INF/struts-logic.tld</taglib-location> </taglib> <taglib> <taglib-uri>/tags/struts-nested</taglib-uri> <taglib-location>/WEB-INF/struts-nested.tld</taglib-location> </taglib> <taglib> <taglib-uri>/tags/struts-tiles</taglib-uri> <taglib-location>/WEB-INF/struts-tiles.tld</taglib-location> </taglib> <taglib> <taglib-uri>/tags/struts-menu.tld</taglib-uri> <taglib-location>/WEB-INF/struts-menu.tld</taglib-location> </taglib> </jsp-config> <security-constraint> <web-resource-collection> <web-resource-name>Protected Area</web-resource-name> <url-pattern>*.do</url-pattern> <http-method>HEAD</http-method> <http-method>GET</http-method> <http-method>POST</http-method> <http-method>PUT</http-method> <http-method>DELETE</http-method> </web-resource-collection> <auth-constraint> <role-name>actif</role-name> </auth-constraint> </security-constraint> <login-config> <auth-method>FORM</auth-method> <realm-name>Authentication Area</realm-name> <form-login-config> <form-login-page>/jsp/common/login.jsp</form-login-page> <form-error-page>/jsp/erreurs/errorlogin.jsp</form-error-page> </form-login-config> </login-config> <security-role> <role-name>actif</role-name> </security-role> <resource-ref> <description>Oracle Datasource</description> <res-ref-name>jdbc/projet</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> <filter> <filter-name>DownloadFilter</filter-name> <filter-class>org.gci.web.util.DownloadFilter</filter-class> </filter> <filter-mapping> <filter-name>DownloadFilter</filter-name> <url-pattern>*.do</url-pattern> </filter-mapping> <!-- Timeout de sesssion (en minutes) --> <session-config> <session-timeout>25</session-timeout> </session-config> </web-app>
Le contenu de mon pom.xml (plugin Jetty) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
64
65
66
67
68
69
70
71 <%@ include file="/jsp/tld.jsp"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <!-- HTTP 1.1 --> <meta http-equiv="Cache-Control" content="no-store" /> <meta http-equiv="Refresh" content="600"> <!-- HTTP 1.0 --> <meta http-equiv="Pragma" content="no-cache" /> <!-- Prevents caching at the Proxy Server --> <meta http-equiv="Expires" content="0" /> <title><bean:message key="authentification.title" /></title> <link rel="stylesheet" href="./css/gmao.css" type="text/css" media="all" /> <script type="text/javascript"> function setfocus() { document.loginForm.j_username.focus(); } </script> </head> <script type="text/javascript" src="./scripts/fonctions.js"></script> <script language="javascript"> closeOnExpire(); </script> <%@ include file="/jsp/layout/blockUI.jsp"%> <body onload="setfocus();"> <table width="100%" height="95%"> <tr height="40px"> <td style="text-align: center"><img src="./images/bandeau_gauche_nc_3.gif" border="0" /><img src="./images/gl_small.gif" border="0" /><img src="./images/bandeau.gif" border="0" /><br> <br> <span style="font-size: 12; font-weight: bold">Application</span></td> </tr> <tr style="vertical-align: middle;"> <td style="text-align: center;"> <form name="loginForm" action="j_security_check" method="post" onsubmit="if (startsWith(false, j_username.value, 'voi')) j_username.value = j_username.value.toUpperCase();blockUI();"> <table style="width: 300px;" class="formulaire"> <tr> <td colspan="2" class="title"><span class="title"><bean:message key="authentification.title" /></span></td> </tr> <tr> <td class="label"><label for="j_username" class="required"><bean:message key="utilisateur.label.login" /> :</label></td> <td class="field"><input type="text" name="j_username" /></td> </tr> <tr> <td class="label"><label for="j_password" class="required"><bean:message key="utilisateur.label.password" /> :</label></td> <td class="field"><input type="password" name="j_password" value="" /></td> <tr> <td colspan="2" class="buttonbar"><html:submit titleKey="bouton.valider" styleClass="valider" onmouseover="this.className='valider-hover'" onmouseout="this.className='valider'"> <bean:message key="bouton.valider" /> </html:submit></td> </tr> </table> </form> </td> </tr> </table> </body> </html>
Le jetty-env.xml :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 <plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>7.6.16.v20140903</version> <configuration> <webAppConfig> <contextPath>/MonProjet</contextPath> <extraClasspath>src/main/resources/hibernate</extraClasspath> <jettyEnvXml>src/main/resources/META-INF/jetty/jetty-env.xml</jettyEnvXml> </webAppConfig> <scanIntervalSeconds>10</scanIntervalSeconds> <webAppSourceDirectory>${project.build.directory}/jetty-docroot</webAppSourceDirectory> <connectors> <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector"> <host>localhost</host> <port>8081</port> <maxIdleTime>60000</maxIdleTime> </connector> </connectors> </configuration> <executions> <execution> <id>jetty-run</id> <phase>prepare-package</phase> <goals> <goal>run</goal> </goals> </execution> </executions> </plugin>
Ça fait déjà un certain temps que je cherche mais sans résultat.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd"> <Configure class="org.eclipse.jetty.webapp.WebAppContext"> <New id="dataSource" class="org.eclipse.jetty.plus.jndi.Resource"> <Arg>jdbc/projet</Arg> <Arg> <New class="com.mchange.v2.c3p0.ComboPooledDataSource"> <Set name="driverClass">oracle.jdbc.driver.OracleDriver</Set> <Set name="jdbcUrl">jdbc:oracle:thin:@xx.xx.xx.xx:1521:orcl</Set> <Set name="factoryClassLocation">org.apache.naming.factory.BeanFactory</Set> <Set name="user">login</Set> <Set name="password">password</Set> <Set name="minPoolSize">2</Set> <Set name="maxPoolSize">5</Set> <Set name="acquireIncrement">1</Set> </New> </Arg> </New> <Get name="securityHandler"> <Set name="loginService"> <New class="org.eclipse.jetty.plus.jaas.JAASLoginService"> <Set name="Name">Authentication Area</Set> <Set name="LoginModuleName">authenticationModule</Set> </New> </Set> </Get> </Configure>
L'application fonctionne très bien sur Tomcat et je n'arrive pas à trouver où se situe la différence entre les 2 serveurs.
Merci d'avance pour votre aide
Partager