openwebbeans-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rafael Pestano <>
Subject Re: Interceptor doesn't
Date Wed, 27 Jun 2012 01:16:50 GMT
Hi Xinglie,

As far as i know(correct if im wrong, i do not have experience with Struts) a Strut Action
has its own lifecycle which is different than a CDI bean, so to make it be a cdi bean you
should create an extension and transform all Struts beans/actions into CDI beans by creating
a javax.enterprise.inject.spi.Bean and implementing all its methods and register it into CDI. 

Basically you will observe to a processAnnotatedType(@Observes ProcessAnnotatedType<StrutsAction> pat)  to
gather all struts beans.

Later in afterBeanDiscovery event you  will create the javax.enterprise.inject.spi.Bean for
each Struts bean you gathered.

You should look at this weld chapter about portable extensions:

Also take a look at Struts CDI plugin maybe
it saves you from creating the extension.

Maybe someone experiencied in Struts(also in CDI ;) )  could  give a more detailed answer. 

I hope it helps 


Rafael M. Pestano

Desenvolvedor Java Cia. de Processamento de Dados do Rio Grande do Sul
Graduando em Ciência da Computação UFRGS

De: Xinglie Zheng <>
Para:; Rafael Pestano <> 
Enviadas: Terça-feira, 26 de Junho de 2012 21:40
Assunto: Re: Interceptor doesn't

Hi Rafael,

I think almost all Java class is a CDI bean.  Do I need to do extra declaration for making
a Java class into CDI bean?

Xinglie Zheng 

On Tue, Jun 26, 2012 at 4:19 PM, Rafael Pestano <> wrote:

Hi Xinglie Zheng,
>you added your struts Action  as a CDI bean in an extension? otherwise i think OWB cant
intercept a non CDI.
>Rafael M. Pestano
>Desenvolvedor Java Cia. de Processamento de Dados do Rio Grande do Sul
>Graduando em Ciência da Computação UFRGS
>De: Xinglie Zheng <>
>Enviadas: Terça-feira, 26 de Junho de 2012 16:59
>Assunto: Interceptor doesn't
>I am using OpenWebbeans with Struts 1.2 framework in Weblogic 11g.  I added an interceptor
for security check.  But when I debug in Eclipse,  the breakpoint at interceptor was never
reached.  Following is my code:
>@Target({ElementType.METHOD, ElementType.TYPE})
>public @interface Secure {
>@Nonbinding int[] allowedUserRole() default {};
>//Struts action class
>public final class EditUserInfoAction extends Action {
>public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest
>HttpServletResponse response) throws IOException, ServletException {
>        }
>//Interceptor class
>public class ACLInterceptor {
>public Object manageACL(InvocationContext ctx) throws Exception {
>         }
>manageACL() method was never invoked.   I really appreciate your help. 

View raw message