Strutus 2 - Não roda o exemplo Ola Mundo com annotations [RESOLVIDO]

1 resposta
kweles

Olá Pessoal estou fazendo um simples Ola Mundo com strtus 2.

1 - Baixei do site o struts 2.
2 - Criei um projeto web;
3 - Copiei todas os jar´s para o diretório lib do web-inf;
4 - Configurei todos eles no build path da aplicação;
5 - alterei o web.xml para:

<?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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <filter>
  	<filter-name>struts2</filter-name>
  	<filter-class>
  		org.apache.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
  	</filter-class>
  </filter>
  
  <filter-mapping>
  	<filter-name>struts2</filter-name>
  	<url-pattern>/*</url-pattern>
  </filter-mapping>

  <display-name>str1</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>
</web-app>
6 - criei uma classe para fazer minha action:
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Result;

public class OlaMundoAction {

	@Action( value= "olaMundoStruts", results = {
			@Result(location = "/olaMundoStruts.jsp",name ="ok" ) } 
	)
	public String execute() {
		System.out.println("Executando a lógica com struts2" );
		return "ok";
	}	
}

7 - criei o olaMundoStruts.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>	
	<h1>Olá Mundo com Struts 2!</h1>
</body>
</html>

8 - Tentei rodar no browser: localhost:8080:str1/olaMundoStruts e não carregou;

9 - Olhei o console do tomcat e vi que havia um erro desde o restart, o qual segue abaixo:

SEVERE: Exception starting filter struts2
java.lang.ClassNotFoundException: org.apache.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

O erro é claro, dizendo que não conseguiu carregar a classe acima, mas todos os jar´s do strtus 2 foram acrescentados.

Preciso de ajuda sobre o assunto!

Obrigado!

1 Resposta

kweles

Olá Pessoal! Obrigado àqueles que visualizaram o post.

Consegui resolver.

Eu havia copiado todos os jar´s do struts 2 para meu diretório lib e aparentemente havia algum erro no meu filtro no web.xml.

Removi todos e coloquei os seguintes jar´s, apenas:

commons-fileupload-1.2.1.jar
commons-logging-1.0.4.jar
freemarker-2.3.15.jar
ognl-2.7.3.jar
struts2-convention-plugin-2.1.8.1.jar
struts2-core-2.1.8.1.jar
xwork-core-2.1.6.jar

Havia um erro no filter-class do xml
que estava:

org.apache.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

qdo deveria estar:
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
veja o xml correto:

<?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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>str1</display-name>
  
 <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>


  <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>
  
  
</web-app>

Bem pessoal se alguém tiver alguma dificuldade como esta foi mais ou menos o que fiz.

Antes, de corrigir este caso segui alguns passos do link abaixo q encontrei neste fórum mesmo:

http://www.roseindia.net/struts/struts2/

Valeu Pessoal!

Espero que ajude alguém!

Criado 22 de abril de 2010
Ultima resposta 23 de abr. de 2010
Respostas 1
Participantes 1