Saturday, January 5, 2019

ADF error: Failed to replicate non-serializable object. java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: java.lang.ClassNotFoundException: Failed to load class

Hello everyone,


I've had an issue during my coding in ADF and I would like to share what I did to fix this issue here.

####<Jan 5, 2019 9:27:44 PM CST> <Error> <Cluster> <thiagoleoncio.oim.com> <oim_serverLeoncio> <[ACTIVE] ExecuteThread: '10' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <afbe5002577ceeea:8f87540d2fab3:-8000-0000000000004037> <1549423664159> <BEA-000126> <All session objects should be serializable to replicate. Check the objects in your session. Failed to replicate non-serializable object.
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
        java.lang.ClassNotFoundException: Failed to load class thiagoleoncioBean
        at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:237)
        at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:223)
        at weblogic.cluster.replication.ReplicationManager_1036_WLStub.create(Unknown Source)
        at sun.reflect.GeneratedMethodAccessor1495.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at weblogic.cluster.replication.SecureReplicationInvocationHandler$ReplicationServicesInvocationAction.run(SecureReplicationInvocationHandler.java:224)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
        at weblogic.cluster.replication.SecureReplicationInvocationHandler.invoke(SecureReplicationInvocationHandler.java:194)
        at com.sun.proxy.$Proxy556.create(Unknown Source)
        at weblogic.cluster.replication.ReplicationManager.trySecondary(ReplicationManager.java:937)
        at weblogic.cluster.replication.ReplicationManager.createSecondary(ReplicationManager.java:890)
        at weblogic.cluster.replication.ReplicationManager.getPrimary(ReplicationManager.java:866)
        at weblogic.cluster.replication.ReplicationManager.lookup(ReplicationManager.java:428)
        at weblogic.servlet.internal.session.ReplicatedSessionContext.lookupSession(ReplicatedSessionContext.java:395)
        at weblogic.servlet.internal.ServletRequestImpl.getSession(ServletRequestImpl.java:1339)
        at weblogic.servlet.internal.session.ReplicatedSessionContext.lookupAppVersionIdForSession(ReplicatedSessionContext.java:549)
        at weblogic.servlet.internal.ServletRequestImpl.findVersionedContext(ServletRequestImpl.java:1705)
        at weblogic.servlet.internal.ServletRequestImpl.dispatchVersion(ServletRequestImpl.java:1658)
        at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1478)
        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:263)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
Caused By: java.lang.ClassNotFoundException: Failed to load class thiagoleoncioBean
        at weblogic.rmi.utils.WLRMIClassLoaderDelegate.loadClass(WLRMIClassLoaderDelegate.java:208)
        at weblogic.rmi.utils.WLRMIClassLoaderDelegate.loadClass(WLRMIClassLoaderDelegate.java:135)
        at weblogic.rmi.utils.Utilities.loadClass(Utilities.java:305)
        at weblogic.rjvm.MsgAbbrevInputStream.resolveClass(MsgAbbrevInputStream.java:452)
        at weblogic.utils.io.ChunkedObjectInputStream$NestedObjectInputStream.resolveClass(ChunkedObjectInputStream.java:274)
        at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1864)
        at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1750)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2036)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1572)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:430)
        at java.util.HashMap.readObject(HashMap.java:1186)
        at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1171)
        at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2172)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2063)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1572)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:430)
        at oracle.adfinternal.controller.state.SessionBasedScopeMap.readScopeMap(SessionBasedScopeMap.java:153)
        at oracle.adfinternal.controller.state.PageFlowScope.readObject(PageFlowScope.java:165)
        at sun.reflect.GeneratedMethodAccessor4034.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1171)
        at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2172)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2063)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1572)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:430)
        at java.util.concurrent.ConcurrentHashMap.readObject(ConcurrentHashMap.java:1574)
        at sun.reflect.GeneratedMethodAccessor4028.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1171)
        at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2172)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2063)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1572)
        at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2281)
        at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2205)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2063)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1572)
        at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2281)
        at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2205)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2063)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1572)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:430)
        at java.util.Hashtable.readObject(Hashtable.java:1015)
        at sun.reflect.GeneratedMethodAccessor151.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1171)
        at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2172)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2063)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1572)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:430)
        at weblogic.servlet.internal.session.ReplicatedSessionData.readExternal(ReplicatedSessionData.java:145)
        at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:2112)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2061)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1572)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:430)
        at weblogic.utils.io.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:214)
        at weblogic.rjvm.MsgAbbrevInputStream.readObject(MsgAbbrevInputStream.java:618)
        at weblogic.utils.io.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:210)
        at weblogic.cluster.replication.ReplicationManager_WLSkel.invoke(Unknown Source)
        at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:667)
        at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:522)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:146)
        at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:518)
        at weblogic.rmi.internal.wls.WLSExecuteRequest.run(WLSExecuteRequest.java:118)
        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:263)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
>
####<Jan 5, 2019 9:27:44 PM CST> <Error> <Cluster> <thiagoleoncio.oim.com> <oim_serverLeoncio> <[ACTIVE] ExecuteThread: '10' for queue: 'weblogic.kernel.Default (self-tuning)'> <xelsysadm> <> <afbe5002577ceeea:8ffed7:168c0d2fab3:-8000-0000000000004037> <1549423664372> <BEA-000126> <All session objects should be serializable to replicate. Check the objects in your session. Failed to replicate non-serializable object.
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
        java.lang.ClassNotFoundException: Failed to load class thiagoleoncioBean
        at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:237)
        at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:223)
        at weblogic.cluster.replication.ReplicationManager_1036_WLStub.create(Unknown Source)
        at sun.reflect.GeneratedMethodAccessor1495.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at weblogic.cluster.replication.SecureReplicationInvocationHandler$ReplicationServicesInvocationAction.run(SecureReplicationInvocationHandler.java:224)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
        at weblogic.cluster.replication.SecureReplicationInvocationHandler.invoke(SecureReplicationInvocationHandler.java:194)
        at com.sun.proxy.$Proxy556.create(Unknown Source)
        at weblogic.cluster.replication.ReplicationManager.trySecondary(ReplicationManager.java:937)
        at weblogic.cluster.replication.ReplicationManager.createSecondary(ReplicationManager.java:890)
    weblogic.servlet.internal.ServletRequestImpl$SessionHelper.syncSession(ServletRequestImpl.java:2963)
        at weblogic.servlet.internal.ServletResponseImpl$1.run(ServletResponseImpl.java:1520)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
        at weblogic.servlet.internal.ServletResponseImpl.send(ServletResponseImpl.java:1514)
        at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1507)
        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:263)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
Caused By: java.lang.ClassNotFoundException: Failed to load class thiagoleoncioBean
        at weblogic.rmi.utils.WLRMIClassLoaderDelegate.loadClass(WLRMIClassLoaderDelegate.java:208)
        at weblogic.rmi.utils.WLRMIClassLoaderDelegate.loadClass(WLRMIClassLoaderDelegate.java:135)
        at weblogic.rmi.utils.Utilities.loadClass(Utilities.java:305)
        at weblogic.rjvm.MsgAbbrevInputStream.resolveClass(MsgAbbrevInputStream.java:452)
        at weblogic.utils.io.ChunkedObjectInputStream$NestedObjectInputStream.resolveClass(ChunkedObjectInputStream.java:274)
        at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1864)
        at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1750)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2036)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1572)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:430)
        at java.util.HashMap.readObject(HashMap.java:1186)
        at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1171)
        at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2172)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2063)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1572)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:430)
        at oracle.adfinternal.controller.state.SessionBasedScopeMap.readScopeMap(SessionBasedScopeMap.java:153)
        at oracle.adfinternal.controller.state.PageFlowScope.readObject(PageFlowScope.java:165)
        at sun.reflect.GeneratedMethodAccessor4034.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1171)
        at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2172)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2063)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1572)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:430)
        at java.util.concurrent.ConcurrentHashMap.readObject(ConcurrentHashMap.java:1574)
        at sun.reflect.GeneratedMethodAccessor4028.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1171)
        at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2172)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2063)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1572)
        at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2281)
        at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2205)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2063)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1572)
        at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2281)
        at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2205)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2063)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1572)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:430)
        at java.util.Hashtable.readObject(Hashtable.java:1015)
        at sun.reflect.GeneratedMethodAccessor151.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1171)
        at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2172)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2063)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1572)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:430)
        at weblogic.servlet.internal.session.ReplicatedSessionData.readExternal(ReplicatedSessionData.java:145)
        at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:2112)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2061)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1572)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:430)
        at weblogic.utils.io.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:214)
        at weblogic.rjvm.MsgAbbrevInputStream.readObject(MsgAbbrevInputStream.java:618)
        at weblogic.utils.io.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:210)
        at weblogic.cluster.replication.ReplicationManager_WLSkel.invoke(Unknown Source)
        at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:667)
        at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:522)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
        at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:146)
        at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:518)
        at weblogic.rmi.internal.wls.WLSExecuteRequest.run(WLSExecuteRequest.java:118)
        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:263)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
>

To fix this issue in your ADF application:


  • First Step: in weblogic.xml change this:


  1. Session descriptor change: Memory option here means - single-server, non-replicated

     <session-descriptor>
    <persistent-store-type>memory</persistent-store-type>
    </session-descriptor>

  • Second Step: Serialization issue during the deployment sometimes is just a matter or testing in one single Managed Server. So, having said that. You need to change the 'architecture problem you are facing during the deployment'.
  1.           You need to stop the other managed servers during the deployment.
  2.           Then this error will not occur, as there will only be one version of the application when restarting after deployment of the new version.


I hope it helps you. Leave a comment if so!

Happy coding,
Thiago Leoncio.