Aucune Action n'est mappé pour l'espace de noms [/] et le nom de l'action [Test] associé avec le chemin de contexte [/TestStruts]. - [inconnue]
Je suis en train de ma première application sur struts 2.3.16 dans NetBeans 7.2.1. Il affiche l'erreur suivante sur la saisie d'une URL - http://localhost:8080/TestStruts/Test.action
(Il y a un Test.jsp
page).
WARNING: Could not find action or result: /TestStruts/Test.action
There is no Action mapped for namespace [/] and action name [Test] associated with context path [/TestStruts]. - [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:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1822)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
La Test.jsp
page:
<s:form namespace="/TestStruts" action="test">
<table border="0" class="">
<tr>
<td>
<s:textfield id="name" name="name" label="Enter your name"/>
</td>
</tr>
<tr>
<td>
<s:textfield id="email" name="email" label="Enter your email"/>
</td>
</tr>
<tr>
<td></td>
<td><s:submit value="Submit"/></td>
</tr>
</table>
</s:form>
La classe de l'action:
package actions;
import com.opensymphony.xwork2.ActionSupport;
public final class TestAction extends ActionSupport
{
private static final String SUCCESS = "success";
private String name;
private String email;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public String execute() throws Exception
{
System.out.println("name = "+name);
System.out.println("email = "+email);
return SUCCESS;
}
}
La strtus.xml
fichier:
<?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="true" />
<constant name="struts.custom.i18n.resources" value="myapp" />
<package name="test" namespace="/TestStruts" extends="struts-default">
<action name="test" class="actions.TestAction" method="execute">
<result name="success">/Test.jsp</result>
</action>
</package>
</struts>
La web.xml
fichier:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/applicationContext.xml
</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<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>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
En plus des fichiers jar de Printemps, j'ai ajouté les fichiers jar au classpath.
- commons-beanutils-1.8.0.jar
- commons-chain-1.2.jar
- commons-collections-3.1.jar
- commons-digester-2.0.jar
- commons-fileupload-1.3.jar
- commons-io-2.2.jar
- commons-lang3-3.1.jar
- commons-lang-2.4.jar
- commons-logging-1.1.3.jar
- commons-logging-api-1.1.jar
- commons-validator-1.3.1.jar
- freemarker-2.3.19.jar
- javassist-3.11.0.GA.jar
- ognl-3.0.6.jar
- struts2-core-2.3.16.jar
- struts2-spring-plugin-2.3.16.jar
- xwork-core-2.3.16.jar
Lorsque l'URL est modifiée à .jsp
de .action
comme http://localhost:8080/TestStruts/Test.jsp
, il montre les avertissements suivants.
Dec 22, 2013 9:00:44 PM org.apache.struts2.components.ServletUrlRenderer warn
WARNING: No configuration found for the specified action: 'test' in namespace: '/TestStruts'. Form action defaulting to 'action' attribute's literal value.
Dec 22, 2013 9:00:45 PM org.apache.struts2.components.ServletUrlRenderer warn
WARNING: No configuration found for the specified action: 'test' in namespace: '/TestStruts'. Form action defaulting to 'action' attribute's literal value.
Ce qui me manque?
OriginalL'auteur Tiny | 2013-12-22
Vous devez vous connecter pour publier un commentaire.
Parce que
/TestStruts
est un chemin de contexte à qui déployé votre application. Il a le même chemin que l'espace de noms dans votre forfait. EssayezLorsque l'Url est rendu à partir de la balises struts c'est en essayant de trouver un correspondant de la configuration d'action. Si il n'y a pas de config trouvé le message d'avertissement est émis.
http://localhost:8080/TestStruts/TestStruts/test.action
mais il a donné cet avertissementWARNING: Could not find action or result: /TestStruts/TestStruts/test.action There is no Action mapped for action name test. - [unknown location]
la prévention de la page en cours d'affichage.Modifier ce
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd">
Changé, mais pas de chance. Est-il de la bibliothèque j'ai peut-être manquant?
src
est l'emplacement, la source de la racine du dossier, il devrait être sur le chemin de classe, les jambes de force est en mesure de le localiser.Il a travaillé, quand j'ai créé un dossier nommé
classes
sousWEB-INF
et déplacé lestruts.xml
fichier dans ce lieu,WEB-INF/classes/struts.xml
comme indiqué dans le ceci blog sur les applications de struts dans NetBeans. Je vous remercie beaucoup pour votre temps et vos efforts. (Je n'ai pas de voix aujourd'hui. Je vais le faire dès demain).OriginalL'auteur Roman C
Après l'exécution de l'application, laisser la console et de mettre le lien de l'URL (comme http://localhost:8080/yourprojectname/.jsp) avec votre page d'index et de l'exécuter.
Il serait bon fonctionnement.
OriginalL'auteur Rajesh Pandey