Por favor, alguem que puder me ajudar com o seguinte erro...
There is no Action mapped for namespace / and action name annot. - [unknown location] com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:186) org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:41) org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:497) org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:421)
Eu não consigo fazer funcionar a Annotation da minha Action de jeito nenhum.
SEMPRE está dando esse erro acima.
Eu peguei um projeto de um site que postaram aqui no forum para poder testar essa parada de Annotation no Struts 2, mas só dá erro.
O link do .zip é esse para caso alguem queira baixar: https://portaljava.dev.java.net/files/documents/353/60973/struts2_action_annotations.zip
Enfim, se alguem souber como me ajudar, posta ae, por favor.
Abaixo os arquivos pertinentes ao projeto:
package actions;
import org.apache.struts2.config.Result;
import org.apache.struts2.config.Results;
import com.opensymphony.xwork2.ActionSupport;
/*
* Obs. sobre esse tipo de action:
* - deve obrigatoriamente herdar a classe pai
*/
// Exemplo de mapeamento multiplo
@Results({
@Result(name="success", value="/jsp/result.jsp"),
@Result(name="method_1", value="/jsp/result.jsp"),
@Result(name="method_2", value="/jsp/result.jsp")
})
public class AnnotAction extends ActionSupport {
private String message;
public String execute() {
this.setMessage( "Success" );
return "success";
}
public String method_1() {
this.setMessage( "Method 1" );
return "method_1";
}
public String method_2() {
this.setMessage( "Method 2" );
return "method_2";
}
//--------------------------------------------------------------------------
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
//--------------------------------------------------------------------------
}
<?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>
<!-- habilita o uso de outros métodos de action internamente na classe action -->
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
<constant name="struts.devMode" value="false" />
<!-- configuração automática -->
</struts>
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_S2AA" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>Struts2_Annotations</display-name>
<!-- ======= -->
<filter>
<filter-name>struts</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
<init-param>
<!-- define os pacotes que irá considerar contendo classes actions -->
<param-name>actionPackages</param-name>
<!-- para definir mais de um pacote utilize "," -->
<param-value>actions</param-value>
</init-param>
</filter>
<!-- ======= -->
<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- ======= -->
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>Struts 2 - Actions - Annotations</title>
</head>
<body>
Executar a action: <a href="annot.action">Annotation Action</a>
</body>
</html>
Valeu!!
Abraço!