Hello. 

I am trying to setup fail-safe environment with session replication. We are 
using JSF 2, CDI and apache CODI in our application. 
I have tried last snapshot (apache-tomee-1.5.2-20121230.041244-19-webprofile) 
with "-Dopenejb.session-context=http" parameter, and got an exception after 
TomEE has tried to replicate the session: 

java.lang.RuntimeException: cannot load the class: 
org.apache.myfaces.extensions.cdi.core.api.config.AttributeAware
        at 
javassist.util.proxy.SerializedProxy.loadClass(SerializedProxy.java:70)
        at 
javassist.util.proxy.SerializedProxy.readResolve(SerializedProxy.java:79)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at 
java.io.ObjectStreamClass.invokeReadResolve(ObjectStreamClass.java:1061)
        at 
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1762)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
        at 
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
        at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
        at 
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
        at 
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
        at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
        at 
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
        at 
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
        at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
        at 
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
        at 
org.apache.catalina.ha.session.DeltaSession.readObject(DeltaSession.java:738)
        at 
org.apache.catalina.ha.session.DeltaSession.readObjectData(DeltaSession.java:535)
        at 
org.apache.catalina.ha.session.DeltaSession.readExternal(DeltaSession.java:510)
        at 
java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1792)
        at 
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1751)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
        at 
org.apache.catalina.tribes.io.XByteBuffer.deserialize(XByteBuffer.java:568)
        at 
org.apache.catalina.tribes.tipis.AbstractReplicatedMap$MapMessage.value(AbstractReplicatedMap.java:1409)
        at 
org.apache.catalina.tribes.tipis.AbstractReplicatedMap$MapMessage.deserialize(AbstractReplicatedMap.java:1365)
        at 
org.apache.catalina.tribes.tipis.AbstractReplicatedMap.messageReceived(AbstractReplicatedMap.java:601)
        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.interceptors.TcpFailureDetector.messageReceived(TcpFailureDetector.java:114)
        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.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$Worker.runTask(ThreadPoolExecutor.java:886)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.ClassNotFoundException: 
org.apache.myfaces.extensions.cdi.core.api.config.AttributeAware
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:247)
        at javassist.util.proxy.SerializedProxy$1.run(SerializedProxy.java:65)
        at java.security.AccessController.doPrivileged(Native Method)
        at 
javassist.util.proxy.SerializedProxy.loadClass(SerializedProxy.java:62)
        ... 44 more


But Class "org.apache.myfaces.extensions.cdi.core.api.config.AttributeAware" 
presents in application's lib folder. How is it possible to get CDI beans 
replicated over TomEE instances? Am I doing it right?
As far as I know, there is FailOverService in OpenWebBeans which makes the 
replication of CDI beans possible. Does it work in TomEE?

Thank you in advance! 

Dmitry Volkov. 

Reply via email to