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/EditableWindowContext > 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(DelegatingMethodAccessorImpl.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:1780) > 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:1771) > 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:1771) > at > java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) > at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369) > at > java.util.concurrent.ConcurrentHashMap.readObject(ConcurrentHashMap.java:1557) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.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:1771) > 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:1771) > 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:1771) > at > java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) > at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369) > at > java.util.concurrent.ConcurrentHashMap.readObject(ConcurrentHashMap.java:1557) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.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:1771) > 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:1771) > at > java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) > at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369) > at > java.util.concurrent.ConcurrentHashMap.readObject(ConcurrentHashMap.java:1557) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.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:1771) > 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:1771) > 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:1771) > 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:1771) > at > java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1347) > at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369) > at > org.apache.catalina.ha.session.DeltaRequest$AttributeInfo.readExternal(DeltaRequest.java:378) > at > org.apache.catalina.ha.session.DeltaRequest.readExternal(DeltaRequest.java:268) > at > org.apache.catalina.ha.session.DeltaManager.deserializeDeltaRequest(DeltaManager.java:604) > at > org.apache.catalina.ha.session.DeltaManager.handleSESSION_DELTA(DeltaManager.java:1346) > at > org.apache.catalina.ha.session.DeltaManager.messageReceived(DeltaManager.java:1293) > at > org.apache.catalina.ha.session.DeltaManager.messageDataReceived(DeltaManager.java:1014) > at > org.apache.catalina.ha.session.ClusterSessionListener.messageReceived(ClusterSessionListener.java:92) > at > org.apache.catalina.ha.tcp.SimpleTcpCluster.messageReceived(SimpleTcpCluster.java:924) > at > org.apache.catalina.ha.tcp.SimpleTcpCluster.messageReceived(SimpleTcpCluster.java:905) > at > org.apache.catalina.tribes.group.GroupChannel.messageReceived(GroupChannel.java:278) > at > org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84) > at > org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84) > at > org.apache.catalina.tribes.group.interceptors.TcpFailureDetector.messageReceived(TcpFailureDetector.java:114) > at > org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:84) > at > org.apache.catalina.tribes.group.ChannelCoordinator.messageReceived(ChannelCoordinator.java:253) > at > org.apache.catalina.tribes.transport.ReceiverBase.messageDataReceived(ReceiverBase.java:287) > at > org.apache.catalina.tribes.transport.nio.NioReplicationTask.drainChannel(NioReplicationTask.java:212) > at > org.apache.catalina.tribes.transport.nio.NioReplicationTask.run(NioReplicationTask.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/EditableWindowContext > 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/EditableWindowContext > 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(DelegatingMethodAccessorImpl.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.EditableWindowContext > 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.access > $000(SessionContextBackedByHttpSession.java:21) > > > org.apache.tomee.catalina.cdi.SessionContextBackedByHttpSession$HttpSe > ssionMap.get(SessionContextBackedByHttpSession.java:223) > > > org.apache.tomee.catalina.cdi.SessionContextBackedByHttpSession$HttpSe > ssionMap.putIfAbsent(SessionContextBackedByHttpSession.java:249) > > > org.apache.tomee.catalina.cdi.SessionContextBackedByHttpSession$HttpSe > ssionMap.putIfAbsent(SessionContextBackedByHttpSession.java:164) > > > org.apache.webbeans.context.AbstractContext.createContextualBag(Abstra > ctContext.java:82) > > > org.apache.webbeans.context.AbstractContext.initContextualBag(Abstract > Context.java:72) > > > org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.initi > ateBeanBag(NormalScopedBeanInterceptorHandler.java:73) > > > org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.<init > >(NormalScopedBeanInterceptorHandler.java:62) > > > org.apache.webbeans.proxy.ProxyFactory.createInterceptorHandler(ProxyF > actory.java:282) > > > org.apache.webbeans.proxy.ProxyFactory.createNormalScopedBeanProxy(Pro > xyFactory.java:225) > > > org.apache.webbeans.container.BeanManagerImpl.getReference(BeanManager > Impl.java:850) > > > org.apache.webbeans.container.InjectableBeanManager.getReference(Injec > tableBeanManager.java:135) > > > org.apache.myfaces.extensions.cdi.core.api.provider.BeanManagerProvide > r.getReference(BeanManagerProvider.java:216) > > > org.apache.myfaces.extensions.cdi.core.api.provider.BeanManagerProvide > r.getContextualReference(BeanManagerProvider.java:176) > > > org.apache.myfaces.extensions.cdi.jsf2.impl.listener.phase.CodiLifecyc > leWrapper.broadcastBeforeFacesRequestEvent(CodiLifecycleWrapper.java:1 > 57) > > > org.apache.myfaces.extensions.cdi.jsf2.impl.listener.phase.CodiLifecyc > 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 > >>> >
