Problem:
When I run a Java client which makes an EJB call to a server on the same
machine I get the following stacktrace. The server creates an ArrayList
, does 517 adds to the ArrayList with new Java objects (which is
composed of Strings, and Integers), uses Externalizable interface for
serialization. The EJB method declares the return type as Collection.
All objects are created new. I know the code works because for smaller
numbers of objects this does not occur. The machine they run on has a
reasonable amount of memory.
java.rmi.UnmarshalException: error unmarshalling arguments; nested
exception is:
java.rmi.NoSuchObjectException: The object identified by: '393' could
not because found. Either it was has not been exported or it has been
collected by the distributed garbage collector.
java.rmi.NoSuchObjectException: The object identified by: '393' could
not because found. Either it was has not been exported or it has been
collected by the distributed garbage collector.
at weblogic.rmi.internal.OIDManager.getServerReference(OIDManager.java:285)
at
weblogic.common.internal.RemoteObjectReplacer.getServerReference(RemoteObjectReplacer.java:288)
at
weblogic.common.internal.RemoteObjectReplacer.resolveObject(RemoteObjectReplacer.java:180)
at
weblogic.common.internal.ChunkedObjectInputStream.resolveObject(ChunkedObjectInputStream.java:80)
at
weblogic.common.internal.ChunkedObjectInputStream$NestedObjectInputStream.resolveObject(ChunkedObjectInputStream.java:355)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:394)
at java.io.ObjectInputStream.inputClassFields(ObjectInputStream.java:2258)
at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:514)
at weblogic.rmi.internal.StubInfo.readObject(StubInfo.java:106)
at java.lang.reflect.Method.invoke(Native Method)
at
java.io.ObjectInputStream.invokeObjectReader(ObjectInputStream.java:2209)
at java.io.ObjectInputStream.inputObject(ObjectInputStream.java:1406)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:381)
at java.io.ObjectInputStream.inputClassFields(ObjectInputStream.java:2258)
at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:514)
at java.io.ObjectInputStream.inputObject(ObjectInputStream.java:1407)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:381)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:231)
at
weblogic.common.internal.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:140)
at
weblogic.rjvm.MsgAbbrevInputStream.readObject(MsgAbbrevInputStream.java:91)
at
com.tfn.autex.ejb.support.impl.FFGroupManagerBean_97vaby_EOImpl_WLSkel.invoke(Unknown
Source)
at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:362)
at
weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerRef.java:114)
at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:313)
at
weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManager.java:821)
at
weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:308)
at
weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:30)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:213)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:189)