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 :

Message There is no Action mapped for action name [Débutant(e)]


Sujet :

Struts 2 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 26
    Par défaut Message There is no Action mapped for action name
    Bon =jour, je viens de commencer à m'initier à struts 2 et dès le premier tutoriel que je trouve pour faire un "hello world" j'ai un problème pour récupérer l'action demandée.
    Je suis sûr que j'ai du passer à côté d'un truc à la con mais je ne vois pas ... j'ai comparer plusieurs projets et je ne trouve pas la solution.

    J'ai une archive de mon projet eclipse ici.


    Voici aussi les logs de tomcat :
    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
     
    INFO: Déploiement du descripteur de configuration struts2Tutoriel.xml
    21 nov. 2010 23:34:32 com.opensymphony.xwork2.util.logging.jdk.JdkLogger info
    INFO: Parsing configuration file [struts-default.xml]
    21 nov. 2010 23:34:32 com.opensymphony.xwork2.util.logging.jdk.JdkLogger info
    INFO: Unable to locate configuration files of the name struts-plugin.xml, skipping
    21 nov. 2010 23:34:32 com.opensymphony.xwork2.util.logging.jdk.JdkLogger info
    INFO: Parsing configuration file [struts-plugin.xml]
    21 nov. 2010 23:34:32 com.opensymphony.xwork2.util.logging.jdk.JdkLogger info
    INFO: Unable to locate configuration files of the name struts.xml, skipping
    21 nov. 2010 23:34:32 com.opensymphony.xwork2.util.logging.jdk.JdkLogger info
    INFO: Parsing configuration file [struts.xml]
    21 nov. 2010 23:34:33 org.apache.catalina.startup.HostConfig deployDescriptor
    INFO: Déploiement du descripteur de configuration manager.xml
    21 nov. 2010 23:34:34 org.apache.catalina.startup.HostConfig deployWAR
    INFO: Déploiement de l'archive struts2-blank-2.2.1.war de l'application web
    21 nov. 2010 23:34:34 com.opensymphony.xwork2.util.logging.jdk.JdkLogger info
    INFO: Parsing configuration file [struts-default.xml]
    21 nov. 2010 23:34:35 com.opensymphony.xwork2.util.logging.jdk.JdkLogger info
    INFO: Unable to locate configuration files of the name struts-plugin.xml, skipping
    21 nov. 2010 23:34:35 com.opensymphony.xwork2.util.logging.jdk.JdkLogger info
    INFO: Parsing configuration file [struts-plugin.xml]
    21 nov. 2010 23:34:35 com.opensymphony.xwork2.util.logging.jdk.JdkLogger info
    INFO: Parsing configuration file [struts.xml]
    21 nov. 2010 23:34:35 org.apache.catalina.startup.HostConfig deployDirectory
    21 nov. 2010 23:35:18 com.opensymphony.xwork2.util.logging.jdk.JdkLogger warn
    ATTENTION: Could not find action or result
    There is no Action mapped for action name HelloWorld. - [unknown location]
    Est-ce que quelqu'un peut regarder ça et me dire où je fais une connerie car je tourne en rond dans les docs.

    D'ailleurs, si quelqu'un peut aussi m'expliquer la notion de namespaces pour les packages struts je ne suis pas contre car je ne vois pas trop les nuances et savoir de quel point partir. (Dans le cas en zip, j'ai retiré le namespace mais ça ne marchait pas nom plus sans).

    Merci à tous les contributeurs.

  2. #2
    Membre confirmé Avatar de Altenide
    Homme Profil pro
    Formateur en technologies web
    Inscrit en
    Décembre 2008
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Formateur en technologies web
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2008
    Messages : 129
    Par défaut
    voici la correction (nettoyée de ton war) je pense qu'avant de t'attaquer aux namespaces il te faut maitriser les concepts de bases de bons tutoriels ici :

    http://kmdkaci.developpez.com/tutori...-avec-struts2/

    http://www.olivier-guillou.fr/oneand...-avec-struts-2

    http://jlafosse.developpez.com/livre.../presentation/

    pour ton pb voici ce que tu as dans ton fichier struts.xml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            <action name="HelloWorld" method="execute"
                class="org.tyzef.tutoriel.struts2.actions.hello.HelloWorldAction">
                <result name="success">/jsp/hello/HelloWorld.jsp</result>
            </action>
    Si tu utilises une méthode execute dans ta classe d'action il est inutile de le spécifier dans ta déclaration d'action xml.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
       <action name="HelloWorld" 
                class="org.tyzef.tutoriel.struts2.actions.hello.HelloWorldAction">
                <result name="success">/jsp/hello/HelloWorld.jsp</result>
            </action>
    suffit.

    pour le namespace il te manque l'attribut namespace="/rep/rep" qui indique dans quel répertoire tu utilises tes action.

    bon Courage.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 26
    Par défaut
    Ok ... merci beaucoup... je pourrais tester ça ce soir.

    Citation Envoyé par Altenide Voir le message

    pour le namespace il te manque l'attribut namespace="/rep/rep" qui indique dans quel répertoire tu utilises tes action.

    bon Courage.
    Par contre j'ai vu que tu avais fait une arborescence plus simplifiée. Je tiens (même s'il s'agit d'un test simple) à garder cette architecture pour bien comprendre justement l'utilisation des répertoires (sauf si cette architecture est erronée).
    Du coup, je vois que toi tu as mis le namespace à "/" mais où se place la racine... le répertoire webapps de l'application ? J'avais essayé avec un namespace à "/" mais cela ne marchait pas. Je ne comprends pas vraiment à quoi tu fais références lorsque tu parles "du répertoire qui utilise les actions".Dans ton exemple, aurait-on pu mettre "WEB-INF/classes/actions" ?

    En tout cas merci... j'en dirais peut-être plus ce soir.

  4. #4
    Membre confirmé Avatar de Altenide
    Homme Profil pro
    Formateur en technologies web
    Inscrit en
    Décembre 2008
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Formateur en technologies web
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2008
    Messages : 129
    Par défaut
    C'est vrai que le concept de namespace peut paraitre ambigue au premier abord.
    L'attribut namespace subdivise le fichier stuts.xml en modules logiques, chacun ayant son propre suffixe identifiant. Les espaces de nom premettent d'éviter les conflits entre les noms d'actions. En clair chaque namespace peut avoir sa propre configuration pour une action. Lorsque l'on utilise un espace de nom l'on n'a pas besoin de spécifier l'url exacte dans la forme des liens qui apelleront l'action.

    cela n'a rien a voir avec l'organisation de tes packages java. A la question "" aurait-on pu mettre "WEB-INF/classes/actions" "" c'est non.


    Imagine une application web nommée struts2Test, ayant plusieurs "répertoires".

    Prenons l'exemple d'un cms, nous avons une racine (le webcontent) répertoire /, une partie administration ; répertoire
    /admin/ et une partie front, répertoire /front/


    Arborescence de struts2Test

    -Webcontent/
    ------|
    ------| index.jsp
    ------| a.jsp
    ------|admin/
    -------| indexAdmin.jsp
    -------| b.jsp
    ------|front/
    -------| indexfront.jsp
    -------| c.jsp

    nous avons donc trois espaces de nom possibles et nous pouvons définir trois packages dans notre fichiers struts.xml


    http://localhost:8080/Struts2Test/ ; correspond au namespace="/"

    http://localhost:8080/Struts2Test/admin/ ; correspond au namespace="/admin"

    http://localhost:8080/Struts2Test/front/ ; correspond au namespace="/front"


    ce qui me donnera un fichier struts.xml de ce type


    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
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
     
    <struts>
     
    <constant name="struts.enable.DynamicMethodInvocation" value="false" />
    <constant name="struts.devMode" value="false" />
     
    	<package name="racine" namespace="/" extends="struts-default">
     
    		<action name="HelloWorld" class="actions.HelloWorldAction">
    			<result name="success">a.jsp</result>
    		</action>
     
    	</package>
     
    	<package name="espaceAdministration" namespace="/admin" extends="struts-default">
     
    		<action name="HelloWorld" class="actions.HelloWorldAction">
    			<result name="success">b.jsp</result>
    		</action>
     
    	</package>
     
    	<package name="espaceFront" namespace="/front" extends="struts-default">
     
    		<action name="HelloWorld" class="actions.HelloWorldAction">
    			<result name="success">c.jsp</result>
    		</action>
     
    	</package>
     
    </struts>

    prenons l'action helloWorld , que va t'il se passé si on appelle helloWorld depuis /Struts2Test/index.jsp ? nous serons redirigés vers a.jsp, si nous appelons cette action depuis indexAdmin.jsp, nous serons redirigés vers b.jsp etc..

    Struts2 écoute l'action dans un espace de nom donné et renvoie "<result name="success">x.jsp</result>" le résultat dans le même espace de nom.

    L'attribut name de l'espace de nom est laissé à notre discrétion. Les packages peuvent également s'étendre entre eux un peux comme en java. Si une action n'est pas trouvé dans le package fils, le package père sera scanné, si l'action y est présente elle sera éxécutée mais en ayant comme espace de nom celui définit dans le fils etc..

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 26
    Par défaut
    Ok je pense que je comprends mieux ...
    merci pour les explications ... je donne une note sur mon niveau de capacité ce soir

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 26
    Par défaut
    Bon ça n'a pas marché ... j'ai tenté dans tous les sens ça ne donne rien.
    J'ai donc recommencé en suivant le premier tutoriel que tu donnais (jusqu'au point iV inclus).

    Citation Envoyé par Altenide Voir le message
    je pense qu'avant de t'attaquer aux namespaces il te faut maitriser les concepts de bases de bons tutoriels ici :

    http://kmdkaci.developpez.com/tutori...-avec-struts2/
    résultat : exectement pareil ... j'ai fait exactement ce qu'il était inscrit.
    Mes seules modifications :
    - ajout de la page jsp/saisir_Developpeur.jsp non décrite
    - modification du nom du package java (vide) en com.developpez.actions

    Alors là je ne comprends rien ... je laisse pour ce soir car je dois bosser demain ...
    Du coup je n'ai pas une bonne note !

    FYI, les logs :
    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
    22 nov. 2010 23:38:11 org.apache.catalina.core.AprLifecycleListener init
    INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/lib/jvm/java-6-openjdk/jre/lib/i386/server:/usr/lib/jvm/java-6-openjdk/jre/lib/i386:/usr/lib/jvm/java-6-openjdk/jre/../lib/i386:/usr/lib/jvm/java-6-openjdk/jre/lib/i386/client:/usr/lib/jvm/java-6-openjdk/jre/lib/i386:/usr/lib/xulrunner-addons:/usr/lib/xulrunner-addons:/usr/java/packages/lib/i386:/usr/lib/jni:/lib:/usr/lib
    22 nov. 2010 23:38:11 org.apache.tomcat.util.digester.SetPropertiesRule begin
    ATTENTION: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:GestionDeveloppeur' did not find a matching property.
    22 nov. 2010 23:38:11 org.apache.coyote.http11.Http11Protocol init
    INFO: Initialisation de Coyote HTTP/1.1 sur http-8080
    22 nov. 2010 23:38:11 org.apache.catalina.startup.Catalina load
    INFO: Initialization processed in 1196 ms
    22 nov. 2010 23:38:11 org.apache.catalina.core.StandardService start
    INFO: Démarrage du service Catalina
    22 nov. 2010 23:38:11 org.apache.catalina.core.StandardEngine start
    INFO: Starting Servlet Engine: Apache Tomcat/6.0.26
    22 nov. 2010 23:38:13 com.opensymphony.xwork2.util.logging.jdk.JdkLogger info
    INFO: Parsing configuration file [struts-default.xml]
    22 nov. 2010 23:38:13 com.opensymphony.xwork2.util.logging.jdk.JdkLogger info
    INFO: Unable to locate configuration files of the name struts-plugin.xml, skipping
    22 nov. 2010 23:38:13 com.opensymphony.xwork2.util.logging.jdk.JdkLogger info
    INFO: Parsing configuration file [struts-plugin.xml]
    22 nov. 2010 23:38:13 com.opensymphony.xwork2.util.logging.jdk.JdkLogger info
    INFO: Unable to locate configuration files of the name struts.xml, skipping
    22 nov. 2010 23:38:13 com.opensymphony.xwork2.util.logging.jdk.JdkLogger info
    INFO: Parsing configuration file [struts.xml]
    22 nov. 2010 23:38:14 org.apache.coyote.http11.Http11Protocol start
    INFO: Démarrage de Coyote HTTP/1.1 sur http-8080
    22 nov. 2010 23:38:14 org.apache.jk.common.ChannelSocket init
    INFO: JK: ajp13 listening on /0.0.0.0:8009
    22 nov. 2010 23:38:14 org.apache.jk.server.JkMain start
    INFO: Jk running ID=0 time=0/57  config=null
    22 nov. 2010 23:38:14 org.apache.catalina.startup.Catalina start
    INFO: Server startup in 2533 ms
    22 nov. 2010 23:38:19 com.opensymphony.xwork2.util.logging.jdk.JdkLogger warn
    ATTENTION: Could not find action or result
    There is no Action mapped for namespace / and action name saisir_Developpeur. - [unknown location]

  7. #7
    Membre confirmé Avatar de Altenide
    Homme Profil pro
    Formateur en technologies web
    Inscrit en
    Décembre 2008
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Formateur en technologies web
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2008
    Messages : 129
    Par défaut
    envois moi ton war je te dirais ce qui cloche.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 26
    Par défaut
    Désolé pour le délai d'envoi ... j'ai été occupé et n'ai pas trop avancé par ailleurs...

    GestionDeveloppeur.war


    Merci du suivi

  9. #9
    Membre confirmé Avatar de Altenide
    Homme Profil pro
    Formateur en technologies web
    Inscrit en
    Décembre 2008
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Formateur en technologies web
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2008
    Messages : 129
    Par défaut
    tu n'a pas exporté les .java dans ton war [ export / WAR file / [cocher export source files ]

Discussions similaires

  1. Erreur "There is no Action mapped "
    Par Death Noto dans le forum Struts 2
    Réponses: 6
    Dernier message: 12/04/2013, 17h32
  2. Cannot retrieve mapping for action
    Par jlon25 dans le forum Struts 1
    Réponses: 16
    Dernier message: 17/07/2007, 11h37
  3. Création d'Action Mapping personnalisée.
    Par DarkWark dans le forum Struts 1
    Réponses: 22
    Dernier message: 18/06/2007, 12h23
  4. Cannot retrieve mapping for action /dologin
    Par gentil dans le forum Struts 1
    Réponses: 9
    Dernier message: 29/03/2007, 14h41
  5. [Struts][Tiles] Probleme d'action mapping avec un dynaform
    Par bluefox_du_974 dans le forum Struts 1
    Réponses: 3
    Dernier message: 28/03/2005, 22h47

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