Olá amigo leitor, estou retornando a postar neste blog depois de muiiiitoooo tempo sem postar, estou atualmente estudando java para aplicações WEB, e o grande motivo aqui é auxiliar a grande quantidade de pessoas no mundo dos códigos binários que possuem problemas ao fazer o primeiro exercício com struts da apostila FJ21 da Caelum (www.caelum.com.br).
Bom, eu passei muito tempo pra fazer funcionar este pequeno exercício (agora está explicado o porquê que não venho postando !!!!! rsrsrsr).
O objetivo deste é mostrar o funcionamento de um controlador struts, que tem como objetivo redirecionar a aplicação para o jsp olaMundoStruts.jsp quando a url http://localhost:8080/fj21-tarefas/olaMundoStruts for acionada.
Fiz tudo certo…
- Baixei o arquivo struts-2.1.8.1-lib.zip do struts 2 do site http://struts.apache.org/2.x/.
- No Eclipse Galileo (fiz o download do site http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/galileo/SR2/eclipse-jee-galileo-SR2-win32.zip) criei um projeto “Dynamic Web Project” conforme diz a apostila.
- Descompactei o arquivo struts-2.1.8.1-lib.zip e coloquei todos os arquivos JARs dentro da pasta WebContent/WEB-INF/lib do projeto que criei.
PÃÃÃ … PRIMEIRO ERRO…. Não utilize arquivos JARs que você não vai utilizar, apenas o necessário…
mas quais são os arquivos necessários???? peguei essa resposta do fórum do GUJ (aí vai a url, http://www.guj.com.br/posts/list/200940.java)
- Descompactei o arquivo struts-2.1.8.1-lib.zip e coloquei somente os arquivos JARs (commons-fileupload-1.2.1.jar, commons-io-1.3.2.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 ) dentro da pasta WebContent/WEB-INF/lib do projeto que criei.
- Em seguida Startei… ou melhor cliquei no START do Servlet Container Apache TomCat (download: http://tomcat.apache.org/) (muitos dizem erroneamente Servidor Web)
- Abri a página WEB e informei a url http://localhost:8080/fj21-tarefas/olaMundoStruts e .. tãn-tãn tãn-tãããn….
PÃÃÃ … SEGUNDO ERRO…. A página Web apresentou um saboroso erro 404… putzzzzz e agora…
ahhhhhhh esse é fácil, a dica veio do meu caro amigo das POOs em PHP Wendersonnnn, que viu minha classe OlaMundoAction da seguinte forma:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
package br.com.caelum.tarefas.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 S T R U T S II"); return "ok"; } } |
Com seu olho extra biônico viu o erro que estava na linha número 9 e rapidamente corrigi para:
|
1 2 3 |
@Action(value = "olaMundoStruts", results = { @Result(location = "/WEB-INF/olaMundoStruts.jsp", name="ok") }) |
então continuando o fluxo
- Abri a página WEB e informei a url http://localhost:8080/fj21-tarefas/olaMundoStruts e .. tãn-tãn tãn-tãããn…
Funcionouuuuuuu uhuuuuuuuhuuu…!!!!!!!!!!!!!
Por favor caro leitor, vamos ajudar quem precisa de ajuda, passei muito tempo pra descobrir estes detalhes, se você achar necessário correção neste post, faça um comentário que brevemente eu alterarei o postarei novamente, faça uma pessoa feliz.
Eduardo Gomes da Silva
Ola Eduardo. Tambem enfrentei esse mesmo problema.
No meu caso estou utilizando o struts2 na versão 2.2.1 e por esta ocorrendo uma exceção no tomcat de java.lang.RuntimeException: java.lang.reflect.InvocationTargetException no metodo com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector.inject, dava este erro de 404.
A excecao era em decorrencia da falta do jar do javassist.
Ao consertar isto ainda utilizei @Result(location = “/olaMundoStruts.jsp”, name=”ok”) como na apostila da caelum.
Estou com o mesmo problema, e não estou conseguindo resolver, se você me ajudadesse gostaria muito, pois, não consigo de jeito nenhum rodar a aplicação do Struts 2.
Segue abaixo o fonte do Struts 2 com anotações que estou tentando usar no netbeans:
http://www.opendrive.com/files/19346477_0g9J4_41c8/struts2.zip
Obrigado,
Helder
Fala gente,
Tive vários dos problemas relatados e só consegui rodar o Struts com esse exemplo aqui: http://www.nabisoft.com/tutorials/struts2/basic-struts2-project-setup
Opa!
Tive todos os problemas possíveis com esse Struts 2 .
Fiquei doido tentando arrumar isso também.
1º Que descobrir é que os jars Struts.2.2.3 não funcionava de jeito nenhum.
2º Esse do diretório. Apesar que tenho aqui esse mesmo exemplo o qual baixei e funciona perfeitamente sem essa correção de caminha WEB-INF. Não me pergunte pq.
3º Um dos principais é. A sua classe Action tem que está em um sub-diretório action.
Exemplo: tarefa.action
Valeu.