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 1 Java Discussion :

Erreur 404 sur forward


Sujet :

Struts 1 Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 26
    Points : 15
    Points
    15
    Par défaut Erreur 404 sur forward
    Bonjour,

    j'ai un soucis, et je ne trouve rien qui m'éclaire sur google

    Je tente de faire une redirection vers un jsp, dans ma class action.

    j'ai déclaré dans mon fichier struts-config.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
             <global-forwards>
             <forward name="mainmenu" path="/mainmenu.jsp" redirect="true">
             </forward>
             </global-forwards>
    dans ma classe action:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public ActionForward execute(ActionMapping mapping,
                            ActionForm form,
                            HttpServletRequest request,
                            HttpServletResponse response)
            {
     
                    System.out.println("execute lance");
     
                    return (mapping.findForward("mainmenu"));
     
            }
    à l'exécution, j'ai bien dans la console, le message "execute lance" qui
    s'affiche. et le mapping forward me retourne à l'affichage (dans le
    navigateur) cela :
    Etat HTTP 404 - /Tuto/mainmenu.jsp
    message /Tuto/mainmenu.jsp

    description La ressource demand�e (/Tuto/mainmenu.jsp) n'est pas
    disponible.
    et l'url dans le navigateur est bien :
    http://localhost:8080/Tuto/mainmenu.jsp (logique car j'ai placé redirect
    à true).


    mainmenu.jsp est au même endroit que index.jsp dans l'arborescence, qui
    lui s'affiche parfaitement. Si je change web.xml pour :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     <welcome-file-list>
      <welcome-file>/WEB-INF/mainmenu.jsp</welcome-file>
     </welcome-file-list>
    sans rien changer d'autre, j'ai directement l'affichage de mainmenu.

    j'ai peut etre un truc bizarre avec le contexte mais je dois avouer que je suis perdu, si vous pouvez m'eclairer cela serait super; d'autant plus que je ne suis pas super à l'aise avec la notion de contexte sous struts

  2. #2
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Comme tu as mis ta jsp sous WEB-INF, il faut le spécifier dans le path :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
             <global-forwards>
             <forward name="mainmenu" path="/WEB-INF/mainmenu.jsp" redirect="true">
             </forward>
             </global-forwards>

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 26
    Points : 15
    Points
    15
    Par défaut
    Bonjour, deja, merci pour ta réponse . j'ai modifié mon fichier struts-config.xml comme suit (suivant ton conseil) et malheureusement cela ne fonctionne toujours pas :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <global-forwards>
     
    <forward name="mainmenu" path="/WEB-INF/mainmenu.jsp"  redirect="true">
    </forward>
     
    </global-forwards>
    et voila le résultat :

    Url dans le navigateur :

    http://localhost:8080/Tuto/WEB-INF/mainmenu.jsp

    et voila ce qu'affiche le navigateur :
    Etat HTTP 404 -

    type Rapport d'�tat

    message

    description La ressource demand�e () n'est pas disponible.
    JBoss Web/2.1.1.CR7


    est ce que cela pourrait venir de tomcat ?

  4. #4
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    WEB-INF est un répertoire protégé.
    Tu ne peux pas accèder à une jsp présente sous WEB-INF directement via l'url.
    A partir du moment où tu mets ta jsp sous WEB-INF, tu ne peux y accèder que par l'intermédiaire d'une Action.
    Donc, via l'url, il faut faire appel à l'Action qui fait le forward vers /WEB-INF/mainmenu.jsp :
    http://localhost:8080/Tuto/pathDeTonAction.do

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 26
    Points : 15
    Points
    15
    Par défaut
    euh je ne cherche pas à y accéder directement en tapant l'url, mais à y accéder sur un findForward("mainmenu") ( cf ma classe action)

    cela dit merci beaucoup, tu viens de répondre à une interrogation que j'avais laissé de coté

    mais je reste bloqué sur mon findForward("mainmenu") exécuté dans ma classe action


    ps: merci pour les balises de mises en forme

  6. #6
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Peux-tu montrer le code complet du struts-config.xml ?
    Peux-tu aussi préciser la version de Struts que tu utilises ?

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 26
    Points : 15
    Points
    15
    Par défaut
    voila :

    j'emploi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    struts 1.3.9
    jboss-5.0.0.CR2
    eclipse (ganimede)
    Struts-config.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
    <?xml version="1.0" encoding="UTF-8"?>
     <!DOCTYPE struts-config PUBLIC
              "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
              "http://struts.apache.org/dtds/struts-config_1_3.dtd">
     
    <struts-config>
     
         <form-beans>
         <form-bean name="LoginForm" type="Tuto.LoginForm"></form-bean>
         </form-beans>
     
         <global-forwards>
             <forward name="mainmenu" path="/WEB-INF/mainmenu.jsp"  redirect="true">
     
             </forward>
     
         </global-forwards>
     
         <action-mappings>
     
          <action path="/login"  type="Tuto.LoginAction" name="LoginForm"  scope="session" input="/index.jsp ">
              </action>
       <action path="/mainmenu" forward="/test.html" />
     
         </action-mappings> 
         <message-resources parameter="ApplicationRessources"/>
    </struts-config>
    l'entièreté des fichiers que j'emploie sont dans le zip (dans le zip le dossier src_Tuto veut dire src/Tuto c'est mon package de source), comme il est possible de voir pour l'instant, c'est un Tutorial, crash test, mais qui me donne de la misere sur un truc illogique
    Fichiers attachés Fichiers attachés

  8. #8
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Je vois que tu as défini une Action de path /mainmenu qui fait un forward vers test.html.

    test.html existe-t'elle bien ?

    Et sinon, le fichier properties devrait être dans le répertoire src et non sous WEB-INF.

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 26
    Points : 15
    Points
    15
    Par défaut
    Bonjour,

    concernant le action de path /mainmenu qui fait un forward vers test.html, n'en tient pas compte, Struts n'y prête aucune attention, et la page test.html existe bien, elle est au même endroit que index.jsp et mainmenu.jsp.

    dans le doute j'ai effacer la ligne et c'est pareille. (c'était un test pour voir si on pouvait faire une action en simple redirection).


    merci pour le fichier properties, je vais voir pour le déplacer

  10. #10
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    A part l'erreur qui s'affiche dans le navigateur, n'y aurait-il pas une erreur plus parlante dans la console Eclipse ?

    Sinon, pourrais-tu montrer l'arborescence de ton projet ?

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 26
    Points : 15
    Points
    15
    Par défaut
    dans eclipse je ne vois rien de pertinent, j'ai attaché trace.txt tu pourra confirmer. hormis l'erreur de hibernate sur jndi mais je doute que cela intervienne

    et pour l'arborescence elle se trouve dans l'autre fichier attaché.

    c'est peut être la version de jboss qui est pas bonne ?
    Fichiers attachés Fichiers attachés

  12. #12
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Je te suggère d'essayer la version 4.2.3 de JBoss...
    La V5 (CR1 certes) avait tellement de problèmes que je ne serais pas surpris que ça vienne de là...

    Tu peux aussi essayer avec Tomcat si tu ne veux pas t'embêter avec un téléchargement... à moins d'avoir des EJB dans ton application, bien sûr...

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 26
    Points : 15
    Points
    15
    Par défaut
    Passage en 4.2.3 de JBoss. et même combat, toujours la même erreur

    par contre question bête comment on deploy automatiquement le war sous eclipse ? avec la version 5, un simple "run on server" et tout s'effectué tout seul, mais là il faut arrêter le serveur et le relancer

  14. #14
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    J'ai regardé un peu ton Tuto.zip, il est faut...
    T'es sûr que c'est l'exemple d'origine que tu nous montres ou tu l'as déjà modifié ?

    A la base, tu cherches quoi, te familiariser avec struts ?
    Tu peux installer les plugins de JBoss. A partir de là, tu pourras créer un projet struts avec template et tu auras un projet prêt à servir

    http://www.jboss.org/tools/download/index.html

    A+

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 26
    Points : 15
    Points
    15
    Par défaut
    tu me surprend mon tuto.zip est faux ? mais tu peux m'en dire plus ou du moins pointer les zones "fausses" ?

    à moins que tu veux dire que la "structure" du projet n'est pas bonne (comme mon fichier de properties au mauvais endroit) ? ce qui pourrait être vrais, car j'ai voulu le faire "from scratch"

    sinon c'est l'exemple d'origine auquel j'ai ajouté les éléments hibernate. il n'y a que pour index.jsp que j'ai ajouter des tags pour voir un peu ce que cela donne.

  16. #16
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    - LoginForm utilise dans son constructeur un objet Irondel inexistant
    - le web.xml référence un fichier de propriété ApplicationResources.properties alors qu'il n'existe que ApplicationResources_fr.properties
    - ton struts-config.xml a un global forward "mainmenu" qui envoie sur mainmenu.jsp ET une action dont le path est "mainmenu" et qui envoie sur une page test.html qui n'existe pas (d'ailleurs ton problème est là)

    Bref, je crois que ça suffit, non ?

  17. #17
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 26
    Points : 15
    Points
    15
    Par défaut
    ahhhh tu m'a fait peur

    - LoginForm utilise dans son constructeur un objet Irondel inexistant:
    l'objet n'existe pas dans le Tuto.zip, mais dans mon projet oui, c'est une classe propriétaire qui via hibernate me retourne une String. cela fonctionne (en tout cas j'ai exactement l'effet escompté).

    Dans le doute et le désespoir, j'ai déjà tester sans mon objet irondel et pareil...

    - le web.xml référence un fichier de propriété ApplicationResources.properties alors qu'il n'existe que ApplicationResources_fr.properties : exact chef je m'en suis rendu compte ce matin en passant sur l'autre version de jboss, erreur corrigé et toujours soucis de findForward("mainmenu"), d'ailleurs je doute que cela est un impact non ?

    - ton struts-config.xml a un global forward "mainmenu" qui envoie sur mainmenu.jsp ET une action dont le path est "mainmenu" et qui envoie sur une page test.html qui n'existe pas (d'ailleurs ton problème est là):

    j'ai voulu faire un test pour voir le résultat. mais l'erreur porte toujours sur mainmenu même avec, que seulement et uniquement, mon global forward c'est pareil.

    voici le struts-config.xml que j'emploie sans mes crash tests et qui me donne toujours la même erreur :

    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 struts-config PUBLIC
              "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
              "http://struts.apache.org/dtds/struts-config_1_3.dtd">
     
    <struts-config>
     
     	<form-beans>
     	<form-bean name="LoginForm" type="Tuto.LoginForm"></form-bean>
     	</form-beans>
     
     	<global-forwards>
     <forward name="mainmenu" path="/mainmenu.jsp"  redirect="true">
     
     		</forward>
     
     	</global-forwards>
     
     	<action-mappings>
     
      	<action path="/login"  type="Tuto.LoginAction" name="LoginForm"  scope="session" input="/index.jsp ">
     
      	</action>
     
     
     	</action-mappings>
     
     </struts-config>
    ce que je ne comprend pas c'est que mon Tuto est tout bête, un formulaire qui est envoyer à la class action et celle ci forward vers mainmenu. et juste seulement et uniquement le forward qui me cause soucis

  18. #18
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    C'est curieux, je testerai ce soir (ou demain)
    Il se trouve que j'ai également une version ganimede (pas très stable d'ailleurs) mais également une europa (beaucoup plus stable)...
    Je comparerai sur les 2

    Il est vrai que ton ébauche de projet est des plus simple, et d'après les corrections que tu as fait, il ne devrait pas y avoir d'erreur 404, mais bon... il y a forcément une raison, même si on ne l'a pas encore trouvée... (même c_nvy, vachement rare !!! )

    A+

  19. #19
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Je ne pense pas que cela puisse avoir un impact mais au cas où, peux-tu enlever le blanc qui est derrière index.jsp dans l'attribut input :
    à remplacer par :
    Concernant le fichier properties, normalement, tu n'as pas à le définir dans le web.xml mais seulement dans le fichier struts-config.xml et par contre, l'as-tu bien déplacé dans le répertoire des sources comme je te l'avais indiqué ?

    Et sinon, as-tu essayé de mettre le forward directement dans le mapping de l'Action au lieu de le mettre dans les global-forwards :
    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
    <?xml version="1.0" encoding="UTF-8"?>
     <!DOCTYPE struts-config PUBLIC
              "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
              "http://struts.apache.org/dtds/struts-config_1_3.dtd">
     
    <struts-config>
     
       <form-beans>
          <form-bean name="LoginForm" type="Tuto.LoginForm"/>
       </form-beans>
     
       <action-mappings>
          <action path="/login" type="Tuto.LoginAction" name="LoginForm" scope="session" input="/index.jsp">
             <forward name="mainmenu" path="/mainmenu.jsp" redirect="true"/>
          </action>
       </action-mappings>
     
    </struts-config>

  20. #20
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Citation Envoyé par OButterlin Voir le message
    Il est vrai que ton ébauche de projet est des plus simple, et d'après les corrections que tu as fait, il ne devrait pas y avoir d'erreur 404, mais bon... il y a forcément une raison, même si on ne l'a pas encore trouvée... (même c_nvy, vachement rare !!! )


    A deux modo, on ne s'en sort pas, c'est incroyable quand même.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [IIS6] Erreur 404 sur les scripts asp
    Par Maximil ian dans le forum IIS
    Réponses: 2
    Dernier message: 06/07/2007, 12h38
  2. Réponses: 1
    Dernier message: 05/02/2007, 14h27
  3. erreur 404 sur serveur tomcat
    Par sg.forums dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 30/10/2006, 14h16
  4. erreur 404 sur serveur tomcat
    Par sg.forums dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 27/10/2006, 12h11

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