Thanks Thomas for the pointer Yes it is a classloader problem After lots of tries I finally managed to have it working (FI our EAR projects are all split into a JPA module, an EJB module and a WAR module) How I did it: - in ear/lib, define codi (api+impl) and message-module (api+impl) - in web/WEB-INF/lib define codi-jsf20-module (api+impl) - put nothing in web/META-INF/MANIFEST.MF - set PARENT_FIRST for both ear and web modules
I will continue my tests with a more realistic application, hoping that we will not use any codi "features" in our EJB module that will need to "use" something from the codi-jsf20-module jars. Thx 2012/12/10 Thomas Herzog <[email protected]>: > > We facwd the problem that codi and myfaces interffered together and myfaces > could not start. > > We did the following, maybe it helps: > > 1. Manifest entry to codi in webapp. > 2. codi placed in ear/lib or web-inf/lib > 3. With two webapps in the application.xml 'start in order' > > Websphere is always a tricky thing :( > The manifest entry was the most important thing. > > Send via Samsung Galaxy S2Denis Forveille <[email protected]> hat > geschrieben:Hello > > I'm trying to use CODI v1.0.5 in WebSphere v8.5.0.1 with a very simple > application, Even if the applications deploys and starts well, on the > first page I receive a NPE > It seems to be caused by some javassist exception while creating a proxy .. > Internally, WAS v8.5 uses MyFaces and OpenWebBeans ,and JDK 1.7 > > > Anyone has success using CODI in WAS v8.5? > > The stack trace is very long ... Here are some pieces of it > > [10/12/12 11:04:34:639 EST] 000000e3 ErrorPageWrit E An exception occurred > javax.faces.FacesException: > java.lang.NullPointerException > at > org.apache.myfaces.shared_impl.context.ExceptionHandlerImpl.wrap(ExceptionHandlerImpl.java:241) > at > org.apache.myfaces.shared_impl.context.ExceptionHandlerImpl.handle(ExceptionHandlerImpl.java:156) > at > org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:191) > at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118) > at > org.apache.myfaces.extensions.cdi.jsf2.impl.listener.phase.CodiLifecycleWrapper.execute(CodiLifecycleWrapper.java:95) > at javax.faces.webapp.FacesServlet.service(FacesServlet.java:189) > [truncated] > Caused by: java.lang.NullPointerException > at > org.apache.myfaces.extensions.cdi.jsf.impl.listener.phase.JsfRequestLifecycleBroadcaster.broadcastBeforeEvent(JsfRequestLifecycleBroadcaster.java:58) > at > org.apache.myfaces.extensions.cdi.jsf.impl.listener.phase.JsfRequestLifecyclePhaseListener.beforePhase(JsfRequestLifecyclePhaseListener.java:56) > at > org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersBefore(PhaseListenerManager.java:76) > at > org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:159) > ... 29 more > [10/12/12 11:04:34:639 EST] 000000e3 servlet E > com.ibm.ws.webcontainer.servlet.ServletWrapper service SRVE0068E: An > exception was thrown by one of the service methods of the servlet > [Faces Servlet] in application [CODITest]. Exception created : > [java.lang.RuntimeException: by java.lang.IllegalAccessError: > org.apache.myfaces.extensions.cdi.jsf.impl.scope.conversation.DefaultBeanEntryFactory > at javassist.util.proxy.ProxyFactory.createClass3(ProxyFactory.java:509) > at javassist.util.proxy.ProxyFactory.createClass2(ProxyFactory.java:486) > at javassist.util.proxy.ProxyFactory.createClass1(ProxyFactory.java:422) > at javassist.util.proxy.ProxyFactory.createClass(ProxyFactory.java:394) > at > org.apache.webbeans.util.SecurityUtil$PrivilegedActionForProxyFactory.run(SecurityUtil.java:301) > at java.security.AccessController.doPrivileged(AccessController.java:229) > at > org.apache.webbeans.util.SecurityUtil.doPrivilegedCreateClass(SecurityUtil.java:184) > at > org.apache.webbeans.proxy.JavassistProxyFactory.getProxyClass(JavassistProxyFactory.java:429) > at > org.apache.webbeans.proxy.JavassistProxyFactory.createNormalScopedBeanProxy(JavassistProxyFactory.java:213) > at > org.apache.webbeans.container.BeanManagerImpl.getReference(BeanManagerImpl.java:870) > at > com.ibm.ws.webbeans.services.IBMBeanManagerImpl.getReference(IBMBeanManagerImpl.java:204) > at > org.apache.myfaces.extensions.cdi.core.impl.util.CodiUtils.getContextualReference(CodiUtils.java:215) > at > org.apache.myfaces.extensions.cdi.core.impl.util.CodiUtils.getContextualReferenceByClass(CodiUtils.java:179) > at > org.apache.myfaces.extensions.cdi.core.impl.util.CodiUtils.getContextualReferenceByClass(CodiUtils.java:139) > at > org.apache.myfaces.extensions.cdi.core.impl.util.CodiUtils.getContextualReferenceByClass(CodiUtils.java:124) > at > org.apache.myfaces.extensions.cdi.jsf.impl.util.RequestCache.getBeanEntryFactory(RequestCache.java:106) > at > org.apache.myfaces.extensions.cdi.jsf.impl.scope.conversation.GroupedConversationContext.resolveBeanEntryFactory(GroupedConversationContext.java:162) > at > org.apache.myfaces.extensions.cdi.core.impl.scope.conversation.AbstractGroupedConversationContext.create(AbstractGroupedConversationContext.java:92) > at > org.apache.myfaces.extensions.cdi.core.impl.scope.conversation.ConversationContextAdapter.get(ConversationContextAdapter.java:81) > at > org.apache.webbeans.context.CustomContextImpl.get(CustomContextImpl.java:43) > at > org.apache.webbeans.context.CustomPassivatingContextImpl.get(CustomPassivatingContextImpl.java:41) > at > org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.getContextualInstance(NormalScopedBeanInterceptorHandler.java:135) > at > org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(NormalScopedBeanInterceptorHandler.java:95) > at > org.apache.myfaces.extensions.cdi.jsf.impl.scope.conversation.ViewAccessConversationExpirationEvaluatorRegistry_$$_javassist_50.broadcastRenderedViewId(ViewAccessConversationExpirationEvaluatorRegistry_$$_javassist_50.java) > at > org.apache.myfaces.extensions.cdi.jsf.impl.util.ConversationUtils.postRenderCleanup(ConversationUtils.java:680) > at > org.apache.myfaces.extensions.cdi.jsf2.impl.listener.phase.CodiLifecycleWrapper.render(CodiLifecycleWrapper.java:128) > > [truncated] > > Caused by: javassist.CannotCompileException: by > java.lang.IllegalAccessError: > org.apache.myfaces.extensions.cdi.jsf.impl.scope.conversation.DefaultBeanEntryFactory > at javassist.util.proxy.FactoryHelper.toClass(FactoryHelper.java:169) > at javassist.util.proxy.ProxyFactory.createClass3(ProxyFactory.java:501) > ... 52 more > Caused by: java.lang.IllegalAccessError: > org.apache.myfaces.extensions.cdi.jsf.impl.scope.conversation.DefaultBeanEntryFactory > at java.lang.ClassLoader.defineClassImpl(Native Method) > at java.lang.ClassLoader.defineClass(ClassLoader.java:286) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:88) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55) > at java.lang.reflect.Method.invoke(Method.java:613) > at javassist.util.proxy.FactoryHelper.toClass2(FactoryHelper.java:181) > at javassist.util.proxy.FactoryHelper.toClass(FactoryHelper.java:163) > ... 53 more

