Cohabitation Struts 1 et 2 dans un même projet ?
Bonjour
Je voudrais utiliser Struts 2 pour realiser les extensions d'un projet struts1. (serveur Tomcat).
(c.a.d) ajouter de nouveau services dans mes pages web au milieu des services Struts1 existants..
Savez vous comment configurer proprement le "web.xml" et l'ensemble du mapping pour faire cohabiter les 2 ?
Est ce jouable ?
Question Bonus 2008,:lol: savez pourquoi dans les exemples (struts2 blank livrés par apache) le fichier struts.xml doit se trouver dans le repertoire WEB-INF/Classes ?? sinon on recupère un erreur "There is no Action mapped for namespace / and action name HelloWorld." ??
Pour être un peu plus precis
Voici en gros la philosophie .. tout ce qui existe déjà en*.do sera traité par ST1 tout le reste qui est nouveau en *.action sera traité par ST2.
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 34 35 36 37 38 39
| <!-- Struts 1 -->
<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>debug</param-name>
<param-value>3</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>3</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<!-- Struts 2 -->
<display-name>Struts Blank</display-name>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping> |
Strut-config.xml :
Code:
1 2 3 4 5 6 7
| <struts-config>
<action-mappings>
<action path="/HW" type="example.HW">
<forward name="success" path="/example/welcome1.jsp"/>
</action>
</action-mappings>
</struts-config> |
Struts.xml
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <struts>
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="false" />
<!-- <include file="example.xml"/> -->
<package name="example" namespace="/example" extends="struts-default">
<action name="HelloWorld" class="example.HelloWorld">
<result>/example/HelloWorld.jsp</result>
</action>
</package>
<!-- Add packages here -->
</struts> |
La page d'accueil pour lancer le tout
index.html
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| <html>
<head>
Page accueil
</head>
<body>
<h3>Bienvenue sur la page du test Struts No 4</h3> <br>
<a href="http://localhost:8080/Struts4/example/HelloWorld.action">lancer hello World Struts 2</a> <br>
<a href="/Struts4/example/HW.do">lancer hello World Struts 1 </a><br>
</body>
</html> |
ET voilà le message d'erreur ... :
il ne concerne que Struts 1 et le lancement de HW.do
Citation:
"Le serveur a rencontré une erreur interne () qui l'a empêché de satisfaire la requête.
exception
javax.servlet.ServletException: No action config found for the specified url.
cause mère
org.apache.struts.chain.commands.InvalidPathException: No action config found for the specified url."
Comme le dirait leeloo dans le 5ieme ELEMENT
"PLEASE HELP!"