openwebbeans-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rafael Pestano <rmpest...@yahoo.com.br>
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: http://docs.jboss.org/weld/reference/latest/en-US/html/extend.html.

Also take a look at Struts CDI plugin http://struts.apache.org/2.3.3/docs/cdi-plugin.html 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 



Att, 

Rafael M. Pestano

Desenvolvedor Java Cia. de Processamento de Dados do Rio Grande do Sul
Graduando em Ciência da Computação UFRGS
http://code.google.com/p/jsf-conventions-framework/
http://rpestano.wordpress.com
http://twitter.com/realpestano



________________________________
De: Xinglie Zheng <zheng.photogallery@gmail.com>
Para: user@openwebbeans.apache.org; Rafael Pestano <rmpestano@yahoo.com.br> 
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?

Regards,
Xinglie Zheng 


On Tue, Jun 26, 2012 at 4:19 PM, Rafael Pestano <rmpestano@yahoo.com.br> 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.
>
>
>Att,
>
>Rafael M. Pestano
>
>Desenvolvedor Java Cia. de Processamento de Dados do Rio Grande do Sul
>Graduando em Ciência da Computação UFRGS
>http://code.google.com/p/jsf-conventions-framework/
>http://rpestano.wordpress.com
>http://twitter.com/realpestano
>
>
>
>________________________________
>De: Xinglie Zheng <zheng.photogallery@gmail.com>
>Para: user@openwebbeans.apache.org
>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:
>
>
>
>@InterceptorBinding
>@Target({ElementType.METHOD, ElementType.TYPE})
>@Retention(RetentionPolicy.RUNTIME)
>public @interface Secure {
>@Nonbinding int[] allowedUserRole() default {};
>}
>
>
>//Struts action class
>public final class EditUserInfoAction extends Action {
>@Secure(allowedUserRole={1,2})
>public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest
request,
>HttpServletResponse response) throws IOException, ServletException {
>......
>        }
>
>
>//Interceptor class
>@Secure
>@Interceptor
>public class ACLInterceptor {
>@AroundInvoke
>public Object manageACL(InvocationContext ctx) throws Exception {
>......
>         }
>
>
>manageACL() method was never invoked.   I really appreciate your help. 
> 

Mime
View raw message