EJBClientContext registerInterceptor not working
julienboz May 1, 2013 11:31 AMBonjour à tous !
I want to inject some metad data into EJBContext like this : https://community.jboss.org/message/757523?tstart=0&_sscc=t
But my client interceptor is never invoked.
My code :
1) EJBClientInterceptor
public class RegisterUserInterceptor implements EJBClientInterceptor, Serializable {
private static final long serialVersionUID = 1L;
@Override
public void handleInvocation(final EJBClientInvocationContext context) throws Exception {
// store user in context
if (!context.getContextData().containsKey("user")) {
context.getContextData().put("user", "hello");
}
context.sendRequest();
}
@Override
public Object handleInvocationResult(final EJBClientInvocationContext context) throws Exception {
return context.getResult();
}
}
2) registerInterceptor
version 1 not work :
@WebListener
public class StartupWebListener implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent sce) {
// on startup
EJBClientContext.getCurrent().registerInterceptor(0, new RegisterUserInterceptor());
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
// on shutdown
}
}
version 2, not work too :
in file META-INF/services/org.jboss.ejb.client.EJBClientInterceptor
ch.mobi.posi.presentation.interceptors.RegisterUserInterceptor
The web listener is invoke, and my client interceptor is registered, but when i invoke my ejb, the class RegisterUserInterceptor is not invoked
@Named
@RequestScoped
public class MyWebController implements Serializable {
private static final long serialVersionUID = 1L;
@Inject private MyEJBFacade facade;
public void search(final AjaxBehaviorEvent event) {
// call facade, client interceptor must add meta data into call context
facade.callMethod();
}
}
PS : I use jboss 7.0.1.Final and jboss-ejb-client-1.0.16.Final
Thanks for your help.