IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Struts 2 Java Discussion :

Cohabitation Struts 1 et 2 dans un même projet ?


Sujet :

Struts 2 Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 15
    Par défaut 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, 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." ??

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 15
    Par défaut 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 xml : 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
    <!-- 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 xml : Sélectionner tout - Visualiser dans une fenêtre à part
    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 xml : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

    "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!"

  3. #3
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Tout d'abord, il y a un ordre à respecter dans les balises du web.xml.
    Les balises display-name, filter et filter-mapping doivent être avant les balises servlet et servlet-mapping.

    Ensuite, pour faire appel à ton Action de path /HW, essaie plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="<%=request.getContextPath()+"/HW.do"%>">lancer hello World Struts 1</a>

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 15
    Par défaut Merci
    En effet ces modifications se sont soldées par une reussite .. mais je voudrais comprendre pourquoi il faut passer par un index.jsp et non pas un index.html.
    car au final le code html généré par la ligne d'appel Struts 1 :
    <a href="<%=request.getContextPath()+"/HW.do"%>">lancer hello World Struts 1</a>
    est exactement le meme :
    <a href="/Struts4/example/HW.do">
    Mais il ne marche pas ..
    Bizarre Bizarre ... vous avez dit Bizarre ? ..... tiens comme c'est Bizarre

    En tous les cas merci beaucoup pour votre aide

  5. #5
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Les jsp sont des pages HTML contenant du code Java.

    Le fait d'utiliser le request.getContextPath() dans l'attribut href de la balise <a> évite d'avoir à coder en dur le contexte de l'application.
    C'est donc beaucoup plus propre.

    Sinon, le code html généré par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="<%=request.getContextPath()+"/HW.do"%>">lancer hello World Struts 1</a>
    doit plutôt être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="/Struts4/HW.do">lancer hello World Struts 1</a>
    non ?

    D'ailleurs, en Struts 1, on utilise plutôt le tag html:link comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:link action="HW">lancer hello World Struts 1</html:link>
    et dans ce cas, il n'est pas utile de coder le request.getContextPath() car automatiquement généré par Struts.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 15
    Par défaut 200 %
    Je suis d'accord à 200 % avec vous, je viens de comprendre ma bêtise ..
    enfin mes bêtises ...
    2008 commence bien mieux pour moi ajourd'hui
    Encore Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Cohabitation EF 1 et 4 dans la même solution
    Par CUCARACHA dans le forum Entity Framework
    Réponses: 5
    Dernier message: 04/05/2011, 09h48
  2. Réponses: 2
    Dernier message: 30/06/2008, 10h16
  3. émission et réception dans le même projet
    Par jleil dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 05/06/2008, 22h15
  4. Réponses: 2
    Dernier message: 05/05/2006, 15h10
  5. Réponses: 5
    Dernier message: 07/09/2004, 17h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo