Struts 2 : aucune Action n'est mappé pour l'espace de noms [/]
Je suis nouveau sur Struts 2 et j'ai suivi un tutoriel vidéo sur Struts 2(Koushik). J'ai créé le Struts.xml la classe d'action et de pages Jsp en même créé dans le tutoriel. Mais il donne l'exception suivante.
Exception:
Jan 13, 2014 9:30:48 PM org.apache.struts2.dispatcher.Dispatcher warn
WARNING: Could not find action or result: /Struts2Starter/getTutorial.action
There is no Action mapped for namespace [/] and action name [getTutorial] associated with context path [/Struts2Starter]. - [unknown location]
at com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:185)
at org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:63)
at org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:37)
at com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:58)
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:552)
at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:99)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Struts.xml
<?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>
<package name="default" extends="struts-default">
<action name="getTutorial" class="org.koushik.javabrains.action.TutorialAction">
<result name="success">/success.jsp</result>
<result name="error">/error.jsp</result>
</action>
</package>
</struts>
Web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>Struts2Starter</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
TutorialAction.java (Action de classe que j'utilise)
package org.koushik.javabrains.action;
public class TutorialAction {
public String execute(){
System.out.println("Hello from execute");
return "success";
}
}
Structure de projet
succès.jsp et de l'erreur.jsp sont normales des fichiers jsp avec un peu de texte. J'ai fait beaucoup de choses pour résoudre ce problème sur google. Mais rien ne résout pas cette. S'il vous plaît laissez-moi savoir si quelqu'un sait ce qui est derrière tout cela. J'en suis très content. 🙂
Changement
Merci beaucoup Alexandre M. Il a travaillé comme un charme!!! 🙂
Struts.xml
à struts.xml
.Merci beaucoup Alexandre M. Il a travaillé comme un charme!!! 🙂
OriginalL'auteur Amila Fonseka | 2014-01-13
Vous devez vous connecter pour publier un commentaire.
Renommer
Struts.xml
convention de nommage pourstruts.xml
fonctionne.OriginalL'auteur balaji
Le message d'erreur dit clairement que
Cela signifie que la configuration d'action n'est pas disponible au moment de l'exécution. Découvrez la config-navigateur plugin pour déboguer les problèmes de configuration.
À la carte correctement l'url de l'action de deux paramètres sont nécessaires: le nom de l'action et de l'espace de noms.
Struts charges xml de configuration au démarrage et il doit connaître l'emplacement de la
struts.xml
. Par défaut, il est à la recherche sur le classpath pour trouver un fichier avec un nom connu commestruts.xml
. Puis il analyse le document et crée une configuration de runtime. Cette configuration est utilisée pour trouver la configuration appropriée de l'élément de l'url de l'action. Si aucun élément n'est trouvé lors de la demande, la 404 code d'erreur est retourné avec le message:There is no Action mapped for namespace and action name
.Aussi ce message contient un espace de noms et des noms d'action utilisée pour trouver l'action de config. Ensuite, vous pouvez vérifier vos paramètres de configuration dans
struts.xml
. Parfois, le nom de l'action et de l'espace de noms, stockées dansActionMapping
point à la mauvaise action. Ces valeurs sont déterminées par laActionMapper
qui pourraient avoir différents de mise en œuvre, utilisés par les plugins.Il y a aussi un autre paramètre qui pourrait affecter cette mappeur et de la cartographie, mais le point est le même si vous obtenez ce message alors l'URL est utilisé n'a pas de carte toute action config dans la configuration de l'exécution. Si vous ne pouvez pas réaliser l'URL que vous devez utiliser, vous pouvez essayer de config-navigateur plugin pour voir la liste des Url à utiliser.
Il semble que vous n'avez pas, parce que vous avez toujours la même exception. marque cette réponse est acceptée et upvote si vous voulez vous faire grâce.
OriginalL'auteur Roman C
changer votre
Struts.xml
et mettre<constant name="struts.devMode" value="true" />
dansstruts.xml
Development mode or devMode
il permet de débogage supplémentaires et de l'aide à indebuggingessayez de code ci-dessous
OriginalL'auteur Raju Rathore
U juste besoin de vérifier que le nom de l'action est constante partout...j'ai aussi eu le même problème que j'ai résolu par la suppression de l'espace de noms qu'il n'est pas nécessaire que je vois u n'ont pas mentionné et aussi, j'ai eu différents nom de l'action à loginpage.jsp et struts.xml page.. donc il suffit de voir ur nom de l'action
OriginalL'auteur shashi mishra
Votre fichier JSP ne devrait pas être sous le répertoire WEB-INF, mais devrait l'être sous le dossier web. J'ai joint une image pour vous montrer le droit hiérarchie.
Le Système De Dossier
OriginalL'auteur 袁一峰
J'ai juste fait le tuto et a eu le même problème. Il s'avère que le problème était l'struts.xml fichier était dans le mauvais emplacement. Assurez-vous que votre struts.xml fichier se trouve ici: /Struts2Starter/src/struts.xml
OriginalL'auteur tony huynh