COnfiguração Struts 2 [resolvido]

Estou tentando configurar minha aplicação para usar struts mas esta dando a seguinte excessão quando subo o servidor:

SEVERE: Exception starting filter struts2 Class: com.opensymphony.xwork2.spring.SpringObjectFactory File: SpringObjectFactory.java Method: getClassInstance Line: 209 - com/opensymphony/xwork2/spring/SpringObjectFactory.java:209:-1 at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:431) at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:69) at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:51) at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:295) at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422) at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:115) at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3838) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4488) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardHost.start(StandardHost.java:785) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) at org.apache.catalina.core.StandardService.start(StandardService.java:519) at org.apache.catalina.core.StandardServer.start(StandardServer.java:710) at org.apache.catalina.startup.Catalina.start(Catalina.java:581) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) Caused by: java.lang.NullPointerException at com.opensymphony.xwork2.spring.SpringObjectFactory.getClassInstance(SpringObjectFactory.java:209) at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.verifyResultType(XmlConfigurationProvider.java:519) at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addResultTypes(XmlConfigurationProvider.java:490) at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:446) at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:264) at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:111) at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:193) at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:55) at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:374) at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:418) ... 20 more

Oque pode ser??

Fiz igual a apostila da caelum, baixo o jar do struts 2 e joguei todos os jars na pasta lib.

Muito Obrigado

Cara tira todos os jars… e poe só os necessários que vai funcionar

Struts 2 core
xwork
ongl
struts 2 convencion (acho que é isso)

tem mais 1 mais testa com esses 4 pra ver.

Abraço.

Ok, funcionou

Muito obrigado =D

Mas estou com outra duvida, de acordo com a apostila é simplesmente adicionar a anotação @Action e @Result no método para funcionar.

Porem eu testei aqui e ele ta falando

There is no Action mapped for namespace / and action name cadastroPF

O que esta faltando para funcionar? algum jar?

É melhor usar anotação ou xml?

Valew

Depois que seu problema tiver resolvido, vá no primeiro post, editar o Título adicionando a tag [RESOLVIDO] no final do Título .

Eu sei,

mas continuo com problema de configuração.

Oque é preciso fazer para funcionar o mapeamento das actions por anotação?

[quote=vinicius_roc]Eu sei,

mas continuo com problema de configuração.

Oque é preciso fazer para funcionar o mapeamento das actions por anotação?[/quote]

De uma olhada neste link

http://www.guj.com.br/posts/list/203977.java

tem um miniprojeto em anexo que vai lhe ajudar .

Favor adicionar estas libs na pasta WEB-INF/lib

cglib-nodep-2.1_3.jar
commons-fileupload-1.2.1.jar
commons-io-1.4.jar
commons-logging-1.0.4.jar
dwr-1.1-beta-3.jar
freemarker-2.3.8.jar
ognl-2.6.11.jar
spring.jar
struts2-convention-plugin-2.1.6.jar
struts2-core-2.1.6.jar
struts2-dwr-plugin-2.1.6.jar
struts2-spring-plugin-2.0.11.2.jar
xwork-2.1.2.jar

No struts que eu baxei não veio o cglib e o spring, vieram varios spring

spring-beans
spring-context
spring-core
spring-test
spring-web

qual devo usar?

ai para rodar é só copiar os arquivos xml do mini-projeto?

valew

Não precisa utilizar nada do Spring.
Somente veja o que tem na sua @Action() qual o caminho que você colocou e adiciona após o contexto da tua aplicação e pronto. Olhe o Case das letras.

Olhe isso
http://guj.com.br/posts/list/203419.java

Eu olhei, mas o erro dele era do spring, ja resolvi esse o meu agora é que ele ta flando que não ha mapeamento, todas as bibliotecas indicadas ja estão no projeto.

minha classe esta assim:

[code]public class CadastroAction {

@Action(value = "cadastroPF", results = {
		@Result(location = "/cadastro/cadastroPF.jsp", name = "ok") }
		)
public String execute(){
	return "ok";
}

}[/code]

e estou tentando acessar assim:

http://localhost:8080/acol/cadastroPF

acol é o nome da aplicação e cadastroPF o da action.

web.xml

[code]<?xml version="1.0" encoding="UTF-8"?>

ACOL

index.html
index.htm
index.jsp
default.html
default.htm
default.jsp

<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>

[/code]

E ele não da nenhum erro no console, só o 404 no browser dizendo There is no Action mapped for namespace / and action name cadastroPF.

Não sei mais oq pode ser =[

Acho que encontrei uma pista para vocês me ajudarem ^^

Eu criei um novo projeto seguindo passo a passo a apostila e funcionou.

Então eu recriei meu projeto igualzinho só com nome diferente e tambem funcionou

[code]public class OlaMundoAction {

@Action(value = "olaMundoStruts", results = {
		@Result(location = "/olaMundoStruts.jsp", name = "ok") }
)
public String execute() {
	return "ok";
}

}[/code]

Ai pensei ja era, ta funcionado
Então criei a minha igualzinha só mudando o nome da action

[code]public class CadastroAction {

@Action(value = "cadastro", results = {
		@Result(location = "/olaMundoStruts.jsp", name = "ok") }
)
public String execute() {
	return "ok";
}

}[/code]

E ele da erro 404. porque? Oque errei, ou o que não estou entendendo?

Muito Obrigado