Apanhando do WebWork

7 respostas
RodrigoSol

Salve,

Estou me aventurando pelo WW2. Estou seguindo os passos do tutorial aqui do GUJ feito pelo smota…

Depois de fazer tudo… qualquer requisição que eu faça levanta um RuntimeExecption:

java.lang.RuntimeException: Fallback must be an instance of DefaultConfigurationManager
	com.opensymphony.xwork.interceptor.component.DefaultComponentManager.setFallback(DefaultComponentManager.java:50)
	com.opensymphony.webwork.lifecycle.RequestLifecycleFilter.doFilter(RequestLifecycleFilter.java:55)

Erro bem generico pra que tah começando né?

Alguem se habilita?

[]'s

7 Respostas

smota

Opa … costuma acontecer quando você habilita os filtros de lifecycle mas não cria o arquivo components.xml (nesse caso geralmente tem um Caused by depois desse erro, essa é toda a sua stack?)

RodrigoSol

smota,

criei o components.xml no diretório web-inf/classes assim:
<?xml version="1.0" encoding="ISO-8859-1"?>
	<components>
		<component>
			<scope>session</scope>
				<class>br.com.g3hold.vendadireta.components.UserSession</class>
				<enabler>br.com.g3hold.vendadireta.components.UserSessionAware</enabler>
		</component>
</components>

tem alguma coisa errada?

a stack completa
java.lang.RuntimeException: Fallback must be an instance of DefaultConfiguration
Manager
        at com.opensymphony.xwork.interceptor.component.DefaultComponentManager.
setFallback(DefaultComponentManager.java:50)
        at com.opensymphony.webwork.lifecycle.RequestLifecycleFilter.doFilter(Re
questLifecycleFilter.java:55)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:186)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:157)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:214)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:104)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:520)
        at org.apache.catalina.core.StandardContextValve.invokeInternal(Standard
ContextValve.java:198)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:152)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:104)
        at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(Securit
yAssociationValve.java:72)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:102)
        at org.jboss.web.tomcat.security.JBossSecurityMgrRealm.invoke(JBossSecur
ityMgrRealm.java:275)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:102)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:520)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:137)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:104)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:117)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:102)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:520)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:109)
        at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:104)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:520)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)

        at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:16
0)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
:799)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
ssConnection(Http11Protocol.java:705)
        at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java
:577)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP
ool.java:683)
RodrigoSol

Outra coisa… não ficou muito claro pra mim se devo criar o metodo getUserSession() na interface UserSessionAware…

public String intercept(ActionInvocation invocation) throws Exception { Action action = invocation.getAction(); if(action instanceof DisableSecurityAction) { return invocation.invoke(); } else { //devemos validar UserSession session = ((UserSessionAware) action).getUserSession(); if(session.getUsuario()==null) { //não há usuário logado return Action.LOGIN; } } return invocation.invoke(); } }

smota

Hummmm … eu tive uns problemas xaropes de descobrir com o Webwork usando o Tomcat 5.0.16 … no mais era sempre algum erro na configuração.

RodrigoSol

O que você sugere que eu faça?

smota

Debug :shock:

Coloque um breakpoint na classe com.opensymphony.webwork.lifecycle.RequestLifecycleFilter.doFilter e na linha 55 dê uma olhada no estado do objeto quando chamar a com.opensymphony.xwork.interceptor.component.DefaultComponentManager.
setFallback e continue debugando.

Com isso vc vai saber o que está acontecendo … e entender o que era esparado.

(sorry nao ajudar mais, mas eu to sem tempo senao eu ajuda a debugar, mas vai tentando e postando aqui que uma hora sai uma ideia descente).

ricardolecheta

declarou os filtros e listeners ?

http://wiki.opensymphony.com/display/WW/IoC+Configuration

Criado 6 de agosto de 2004
Ultima resposta 6 de ago. de 2004
Respostas 7
Participantes 3