Interceptor no WW não funciona

Pessoal, me expliquem pq isso aqui nao ta dando certo… tenho uma Action no Webwork definida assim:

<action name="helloWorld" class="com.foo.HelloWorldAction">
   <result name="success" type="velocity">success.vm</result>
   <result name="error" type="dispatcher">error.jsp</result>
</action> 

ok, funciona tranquilamente… mas, ai eu resolvi colocar o interceptor de Timer q o Webwork ja tem definido na Action, ficando assim:

<action name="helloWorld" class="com.foo.HelloWorldAction">
   <result name="success" type="velocity">success.vm</result>
   <result name="error" type="dispatcher">error.jsp</result>
   <interceptor-ref name="timer"/>
</action>

ok, aparece o log do timer no console, mas ai ao invéz de ir pro success (ou error), cai em 404 direto! :? Confused Eu ja coloquei o default-stack como interceptor padrão no xwork, segue o xwork.xml completo:

xwork.xml

<!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.0//EN"
   "http://www.opensymphony.com/xwork/xwork-1.0.dtd">

<xwork>

   <include file="webwork-default.xml" />

   <package name="default" extends="webwork-default">

      <!-- Default interceptor stack. -->
      <default-interceptor-ref name="defaultStack" />

      <!-- Action: helloWorld -->
      <action name="helloWorld" class="com.foo.HelloWorldAction">
         <result name="success" type="velocity">success.vm</result>
         <result name="error" type="dispatcher">error.jsp</result>
         <interceptor-ref name="timer"/>
      </action>

   </package>

</xwork>

oq esta faltando? :frowning:

Quando vc expecifica um interceptor default:

deve considerar que ele só vale para as actions onde vc não define nenhum outro interceptor. No seu caso vc precisa expecificar a pilha completa:

<action name="helloWorld" class="com.foo.HelloWorldAction"> <interceptor-ref name="timer"/> <interceptor-ref name="defautStack"/> <result name="success" type="velocity">success.vm</result> <result name="error" type="dispatcher">error.jsp</result> </action>

Pode parecer estranho, mas faz sentido isso, pois pode chegar algum momento em que vc não queria usar o interceptor default, então vc apenas adiciona o interceptor da sua preferencia.

:wink:

realmente é meio tosco mas faz sentido, valeu volnei