That was the issue. I become an exception in my application, but can't isolate it in test app. CDI beans in real application are way complexer and something, somewhere is not working. I will try to reproduce it in the test app. I would appreciate any help.
-----Ursprüngliche Nachricht----- Von: Romain Manni-Bucau [mailto:[email protected]] Gesendet: Donnerstag, 7. Februar 2013 15:07 An: [email protected] Betreff: Re: AW: Passivation capable CDI beans replication across cluster does not work PS: just tested your app (github) and didnt get any issue any help to reproduce it? *Romain Manni-Bucau* *Twitter: @rmannibucau <https://twitter.com/rmannibucau>* *Blog: **http://rmannibucau.wordpress.com/*<http://rmannibucau.wordpress.com/> *LinkedIn: **http://fr.linkedin.com/in/rmannibucau* *Github: https://github.com/rmannibucau* 2013/2/7 Romain Manni-Bucau <[email protected]> > the test is value == null or not so whatever you put to activate it it > will be on. > > then the property "tomee.session-context.wrapper" can be direct or > something else. Direct is the most efficient but only works for single > instance since it uses directly the internal session of tomcat. > > Normally nothing more is needed to be configured while the instances > are iso regarding the serialization (same JVM, same webapps > deployed...) > > *Romain Manni-Bucau* > *Twitter: @rmannibucau <https://twitter.com/rmannibucau>* > *Blog: > **http://rmannibucau.wordpress.com/*<http://rmannibucau.wordpress.com/ > > > *LinkedIn: **http://fr.linkedin.com/in/rmannibucau* > *Github: https://github.com/rmannibucau* > > > > 2013/2/7 <[email protected]> > > Did you mean openejb.session-context = http (not true) ? >> >> I have checked that app is deployed on both nodes. Still have an >> exception. >> Are there some specific settings for CDI beans replication? >> -----Ursprüngliche Nachricht----- >> Von: Romain Manni-Bucau [mailto:[email protected]] >> Gesendet: Donnerstag, 7. Februar 2013 11:59 >> An: [email protected] >> Betreff: Re: AW: Passivation capable CDI beans replication across >> cluster does not work >> >> when i got this error the app on a node was not yet deployed so the >> class was not able to be found >> >> conf/system.properties: >> openejb.session-context = true >> >> # optional normally >> tomee.session-context.wrapper = http # or direct if single instance >> >> *Romain Manni-Bucau* >> *Twitter: @rmannibucau <https://twitter.com/rmannibucau>* >> *Blog: **http://rmannibucau.wordpress.com/*< >> http://rmannibucau.wordpress.com/> >> *LinkedIn: **http://fr.linkedin.com/in/rmannibucau* >> *Github: https://github.com/rmannibucau* >> >> >> >> 2013/2/7 <[email protected]> >> >> > Hi, >> > >> > Session replication is still not working. Just tested my >> > application(JSF 2.0, EJB, CDI, CODI) and got exception after TomEE >> > has tried to replicate the session. >> > I would like to reproduce this exception in test app, but have no >> > idea how to do it. >> > Could you also please summarize, which properties in >> > system.properties should I set, to get replication working? >> > >> > SEVERE: Manager [/CDP_v10]: Unable to receive message through TCP >> > channel >> > java.lang.RuntimeException: by java.lang.NoClassDefFoundError: >> > >> org/apache/myfaces/extensions/cdi/jsf/impl/scope/conversation/spi/Edi >> tableWindowContext >> > at >> > javassist.util.proxy.ProxyFactory.createClass3(ProxyFactory.java:515) >> > at >> > javassist.util.proxy.ProxyFactory.createClass2(ProxyFactory.java:492) >> > at >> > javassist.util.proxy.ProxyFactory.createClass1(ProxyFactory.java:428) >> > at >> > javassist.util.proxy.ProxyFactory.createClass(ProxyFactory.java:420) >> > at >> > >> javassist.util.proxy.SerializedProxy.readResolve(SerializedProxy.java >> :85) >> > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> > at >> > >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. >> java:57) >> > at >> > >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces >> sorImpl.java:43) >> > at java.lang.reflect.Method.invoke(Method.java:601) >> > at >> > java.io.ObjectStreamClass.invokeReadResolve(ObjectStreamClass.java:1091) >> > at >> > >> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1 >> 780) >> > at >> > java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) >> > at >> > java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1964) >> > at >> > java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1888) >> > at >> > >> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1 >> 771) >> > at >> > java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) >> > at >> > java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1964) >> > at >> > java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1888) >> > at >> > >> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1 >> 771) >> > at >> > java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) >> > at >> java.io.ObjectInputStream.readObject(ObjectInputStream.java:369) >> > at >> > >> java.util.concurrent.ConcurrentHashMap.readObject(ConcurrentHashMap.j >> ava:1557) >> > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> > at >> > >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. >> java:57) >> > at >> > >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces >> sorImpl.java:43) >> > at java.lang.reflect.Method.invoke(Method.java:601) >> > at >> > java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1004) >> > at >> > java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1866) >> > at >> > >> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1 >> 771) >> > at >> > java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) >> > at >> > java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1964) >> > at >> > java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1888) >> > at >> > >> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1 >> 771) >> > at >> > java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) >> > at >> > java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1964) >> > at >> > java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1888) >> > at >> > >> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1 >> 771) >> > at >> > java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) >> > at >> java.io.ObjectInputStream.readObject(ObjectInputStream.java:369) >> > at >> > >> java.util.concurrent.ConcurrentHashMap.readObject(ConcurrentHashMap.j >> ava:1557) >> > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> > at >> > >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. >> java:57) >> > at >> > >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces >> sorImpl.java:43) >> > at java.lang.reflect.Method.invoke(Method.java:601) >> > at >> > java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1004) >> > at >> > java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1866) >> > at >> > >> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1 >> 771) >> > at >> > java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) >> > at >> > java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1964) >> > at >> > java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1888) >> > at >> > >> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1 >> 771) >> > at >> > java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) >> > at >> java.io.ObjectInputStream.readObject(ObjectInputStream.java:369) >> > at >> > >> java.util.concurrent.ConcurrentHashMap.readObject(ConcurrentHashMap.j >> ava:1557) >> > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> > at >> > >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. >> java:57) >> > at >> > >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces >> sorImpl.java:43) >> > at java.lang.reflect.Method.invoke(Method.java:601) >> > at >> > java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1004) >> > at >> > java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1866) >> > at >> > >> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1 >> 771) >> > at >> > java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) >> > at >> > java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1964) >> > at >> > java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1888) >> > at >> > >> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1 >> 771) >> > at >> > java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) >> > at >> > java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1964) >> > at >> > java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1888) >> > at >> > >> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1 >> 771) >> > at >> > java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) >> > at >> > java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1964) >> > at >> > java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1888) >> > at >> > >> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1 >> 771) >> > at >> > java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) >> > at >> java.io.ObjectInputStream.readObject(ObjectInputStream.java:369) >> > at >> > >> org.apache.catalina.ha.session.DeltaRequest$AttributeInfo.readExterna >> l(DeltaRequest.java:378) >> > at >> > >> org.apache.catalina.ha.session.DeltaRequest.readExternal(DeltaRequest >> .java:268) >> > at >> > >> org.apache.catalina.ha.session.DeltaManager.deserializeDeltaRequest(D >> eltaManager.java:604) >> > at >> > >> org.apache.catalina.ha.session.DeltaManager.handleSESSION_DELTA(Delta >> Manager.java:1346) >> > at >> > >> org.apache.catalina.ha.session.DeltaManager.messageReceived(DeltaMana >> ger.java:1293) >> > at >> > >> org.apache.catalina.ha.session.DeltaManager.messageDataReceived(Delta >> Manager.java:1014) >> > at >> > >> org.apache.catalina.ha.session.ClusterSessionListener.messageReceived >> (ClusterSessionListener.java:92) >> > at >> > >> org.apache.catalina.ha.tcp.SimpleTcpCluster.messageReceived(SimpleTcp >> Cluster.java:924) >> > at >> > >> org.apache.catalina.ha.tcp.SimpleTcpCluster.messageReceived(SimpleTcp >> Cluster.java:905) >> > at >> > >> org.apache.catalina.tribes.group.GroupChannel.messageReceived(GroupCh >> annel.java:278) >> > at >> > >> org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceiv >> ed(ChannelInterceptorBase.java:84) >> > at >> > >> org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceiv >> ed(ChannelInterceptorBase.java:84) >> > at >> > >> org.apache.catalina.tribes.group.interceptors.TcpFailureDetector.mess >> ageReceived(TcpFailureDetector.java:114) >> > at >> > >> org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceiv >> ed(ChannelInterceptorBase.java:84) >> > at >> > >> org.apache.catalina.tribes.group.ChannelCoordinator.messageReceived(C >> hannelCoordinator.java:253) >> > at >> > >> org.apache.catalina.tribes.transport.ReceiverBase.messageDataReceived >> (ReceiverBase.java:287) >> > at >> > >> org.apache.catalina.tribes.transport.nio.NioReplicationTask.drainChan >> nel(NioReplicationTask.java:212) >> > at >> > >> org.apache.catalina.tribes.transport.nio.NioReplicationTask.run(NioRe >> plicationTask.java:101) >> > at >> > >> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor. >> java:1110) >> > at >> > >> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor >> .java:603) >> > at java.lang.Thread.run(Thread.java:722) >> > Caused by: javassist.CannotCompileException: by >> > java.lang.NoClassDefFoundError: >> > >> org/apache/myfaces/extensions/cdi/jsf/impl/scope/conversation/spi/Edi >> tableWindowContext >> > at >> > javassist.util.proxy.FactoryHelper.toClass(FactoryHelper.java:170) >> > at >> > javassist.util.proxy.ProxyFactory.createClass3(ProxyFactory.java:507) >> > ... 95 more >> > Caused by: java.lang.NoClassDefFoundError: >> > >> org/apache/myfaces/extensions/cdi/jsf/impl/scope/conversation/spi/Edi >> tableWindowContext >> > at java.lang.ClassLoader.defineClass1(Native Method) >> > at java.lang.ClassLoader.defineClass(ClassLoader.java:791) >> > at sun.reflect.GeneratedMethodAccessor34.invoke(Unknown Source) >> > at >> > >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces >> sorImpl.java:43) >> > at java.lang.reflect.Method.invoke(Method.java:601) >> > at >> > javassist.util.proxy.FactoryHelper.toClass2(FactoryHelper.java:182) >> > at >> > javassist.util.proxy.FactoryHelper.toClass(FactoryHelper.java:164) >> > ... 96 more >> > Caused by: java.lang.ClassNotFoundException: >> > >> org.apache.myfaces.extensions.cdi.jsf.impl.scope.conversation.spi.Edi >> tableWindowContext >> > at java.net.URLClassLoader$1.run(URLClassLoader.java:366) >> > at java.net.URLClassLoader$1.run(URLClassLoader.java:355) >> > at java.security.AccessController.doPrivileged(Native Method) >> > at java.net.URLClassLoader.findClass(URLClassLoader.java:354) >> > at java.lang.ClassLoader.loadClass(ClassLoader.java:423) >> > at java.lang.ClassLoader.loadClass(ClassLoader.java:356) >> > ... 103 more >> > >> > >> > -----Ursprüngliche Nachricht----- >> > Von: Romain Manni-Bucau [mailto:[email protected]] >> > Gesendet: Freitag, 4. Januar 2013 15:57 >> > An: [email protected] >> > Betreff: Re: AW: Passivation capable CDI beans replication across >> > cluster does not work >> > >> > this issue should be fixed on trunk + it should work without the >> > wrapper property now >> > >> > Romain Manni-Bucau >> > Twitter: @rmannibucau >> > Blog: http://rmannibucau.wordpress.com/ >> > LinkedIn: http://fr.linkedin.com/in/rmannibucau >> > Github: https://github.com/rmannibucau >> > >> > >> > >> > 2013/1/4 <[email protected]>: >> > > Just tested with snapshot 1.5.2-20130104.041348-22: >> > > -Dtomee.session-context.wrapper=http only - no effect both >> > > -Dtomee.session-context.wrapper=http and >> > > -Dopenejb.session-context=http >> > - got exception: >> > > >> > > java.lang.ClassCastException: java.lang.String cannot be cast to >> > javax.enterprise.context.spi.Contextual >> > > >> > org.apache.tomee.catalina.cdi.SessionContextBackedByHttpSession.key >> > (Se >> > ssionContextBackedByHttpSession.java:62) >> > > >> > org.apache.tomee.catalina.cdi.SessionContextBackedByHttpSession.acc >> > ess >> > $000(SessionContextBackedByHttpSession.java:21) >> > > >> > org.apache.tomee.catalina.cdi.SessionContextBackedByHttpSession$Htt >> > pSe >> > ssionMap.get(SessionContextBackedByHttpSession.java:223) >> > > >> > org.apache.tomee.catalina.cdi.SessionContextBackedByHttpSession$Htt >> > pSe >> > ssionMap.putIfAbsent(SessionContextBackedByHttpSession.java:249) >> > > >> > org.apache.tomee.catalina.cdi.SessionContextBackedByHttpSession$Htt >> > pSe >> > ssionMap.putIfAbsent(SessionContextBackedByHttpSession.java:164) >> > > >> > org.apache.webbeans.context.AbstractContext.createContextualBag(Abs >> > tra >> > ctContext.java:82) >> > > >> > org.apache.webbeans.context.AbstractContext.initContextualBag(Abstr >> > act >> > Context.java:72) >> > > >> > org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.in >> > iti >> > ateBeanBag(NormalScopedBeanInterceptorHandler.java:73) >> > > >> > org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.<i >> > nit >> > >(NormalScopedBeanInterceptorHandler.java:62) >> > > >> > org.apache.webbeans.proxy.ProxyFactory.createInterceptorHandler(Pro >> > xyF >> > actory.java:282) >> > > >> > org.apache.webbeans.proxy.ProxyFactory.createNormalScopedBeanProxy( >> > Pro >> > xyFactory.java:225) >> > > >> > org.apache.webbeans.container.BeanManagerImpl.getReference(BeanMana >> > ger >> > Impl.java:850) >> > > >> > org.apache.webbeans.container.InjectableBeanManager.getReference(In >> > jec >> > tableBeanManager.java:135) >> > > >> > org.apache.myfaces.extensions.cdi.core.api.provider.BeanManagerProv >> > ide >> > r.getReference(BeanManagerProvider.java:216) >> > > >> > org.apache.myfaces.extensions.cdi.core.api.provider.BeanManagerProv >> > ide >> > r.getContextualReference(BeanManagerProvider.java:176) >> > > >> > org.apache.myfaces.extensions.cdi.jsf2.impl.listener.phase.CodiLife >> > cyc >> > leWrapper.broadcastBeforeFacesRequestEvent(CodiLifecycleWrapper.jav >> > a:1 >> > 57) >> > > >> > org.apache.myfaces.extensions.cdi.jsf2.impl.listener.phase.CodiLife >> > cyc >> > leWrapper.execute(CodiLifecycleWrapper.java:81) >> > > >> > > javax.faces.webapp.FacesServlet.service(FacesServlet.java:197) >> > > >> > > -----Ursprüngliche Nachricht----- >> > > Von: Romain Manni-Bucau [mailto:[email protected]] >> > > Gesendet: Freitag, 4. Januar 2013 14:00 >> > > An: [email protected] >> > > Betreff: Re: AW: Passivation capable CDI beans replication across >> > > cluster does not work >> > > >> > > did you try adding: >> > > >> > > -Dtomee.session-context.wrapper=http? >> > > >> > > Romain Manni-Bucau >> > > Twitter: @rmannibucau >> > > Blog: http://rmannibucau.wordpress.com/ >> > > LinkedIn: http://fr.linkedin.com/in/rmannibucau >> > > Github: https://github.com/rmannibucau >> > > >> > > >> > > >> > > 2013/1/4 <[email protected]>: >> > >> But Apache CODI uses session to save its Conversation and Window >> > >> Scopes >> > (and I can see relevant attributes in session of first node which >> > are not replicated to second node). >> > >> Furthermore CODI scopes are replicated in another application >> > >> servers >> > which uses same technology stack(like IBM Websphere 8). >> > >> >> > >> -----Ursprüngliche Nachricht----- >> > >> Von: Romain Manni-Bucau [mailto:[email protected]] >> > >> Gesendet: Donnerstag, 3. Januar 2013 21:41 >> > >> An: [email protected] >> > >> Betreff: Re: AW: Passivation capable CDI beans replication >> > >> across cluster does not work >> > >> >> > >> Only the sessionscoped beans are replicated through tomcat >> > session...other scoped are not (depend on the impl which probably >> > doesnt use the session to store instances) Le 3 janv. 2013 19:49, < >> > [email protected]> a écrit : >> > >> >> > >>> Hi, >> > >>> >> > >>> I have just uploaded test project reproducing the problem: >> > >>> https://github.com/eiskonzept/tomee/ >> > >>> I have not reproduced exception, but WindowScoped beans are not >> > >>> replicated(without exception) >> > >>> >> > >>> To reproduce the problem: >> > >>> 1. Start two tomee instances: >> > >>> mvn clean package tomee:start -P node1 >> > >>> mvn clean package tomee:start -P node2 2. Open >> > >>> index.xhtml in test application context: >> > >>> http://localhost:8080/tomee_replication-1.0/index.xhtml >> > >>> 3. Check created session in manager application of first node: >> > >>> http://localhost:8080/manager/html/sessions >> > >>> >> > >>> There is parameter with something like this in its name: >> > >>> >> > >> "org.apache.myfaces.extensions.cdi.jsf.impl.scope.conversation.EditableWindowContextManagerProxy" >> > >>> 4. Check replicated session in manager application of second node: >> > >>> http://localhost:8081/manager/html/sessions >> > >>> >> > >>> There is no such parameter. >> > >>> >> > >>> >> > >>> >> > >>> -----Ursprüngliche Nachricht----- >> > >>> Von: Romain Manni-Bucau [mailto:[email protected]] >> > >>> Gesendet: Donnerstag, 3. Januar 2013 15:38 >> > >>> An: [email protected] >> > >>> Betreff: Re: Passivation capable CDI beans replication across >> > >>> cluster does not work >> > >>> >> > >>> Hi, >> > >>> >> > >>> is it possible for you to share a project reproducing it? >> > >>> >> > >>> the best would be a maven project with the tomee maven plugin >> > >>> configured >> > >>> >> > >>> about failoverservice it is off by default and can be >> > >>> configured on trunk ( >> > >>> https://issues.apache.org/jira/browse/TOMEE-698) >> > >>> >> > >>> Romain Manni-Bucau >> > >>> Twitter: @rmannibucau >> > >>> Blog: http://rmannibucau.wordpress.com/ >> > >>> LinkedIn: http://fr.linkedin.com/in/rmannibucau >> > >>> Github: https://github.com/rmannibucau >> > >>> >> > >>> >> > >>> >> > >>> 2013/1/2 <[email protected]>: >> > >>> > cannot load the class >> > >>> >> > >> > >
