Overview: My client jar was missing classes that the server return type was referencing.
I thought I would add to this trail. I was receiving unmarshall exceptions and FVD exception. (see below) On the client side(talking thru an EJB stub to a stateless session bean on the server) I was expecting to receive a JDOM Document. On the server side I was upcasting from a class that extended the JDOM Document as return value to the client. I had thought that the upcast would simply be a document on the client side. I was wrong. The fact that the call was remote did not change the fact that the JDOM Document I was returning from the server was still my extended class type. Thus the FVD error shown below. Basically this means that the client cannot find the forward reference (FullValueDescription) to the more derived class. Pretty clever but a drag to troubleshoot. Hope this helps someone!
CLIENT:
ManagerRemoteHome home = (ManagerRemoteHome)
PortableRemoteObject.narrow(ref,ManagerRemoteHome.class);
ManagerRemote manager = home.create();
Document respDoc = manager.process(new Document(...Request...)
;
SERVER:
public class DerivedDoc extends org.jdom.Document {
...
}
ManagerSession {
public Document process(Document jdoc) {
...
...
return new DerivedDoc(...Response...);// upcast here
//**** the returned document is really a DerivedDoc class
//**** NOT just a jdom Document class
//**** this below is actually correct -->
//**** return new DerivedDoc(...Response...).getJdomDocument();
}
}
Roy
RuntimeException thrown by rmi server: weblogic.corba.cos.codebase.CodeBaseImpl.meta(Ljava.lang.String
org.omg.CORBA.BAD_PARAM: Could not find FVD class for: RMI:sessions.errors.BaseRespDocument:5E24954A679738E0:4F8C6A6D58118691 vmcid: 0x0 minor code: 0 completed: No.
org.omg.CORBA.BAD_PARAM: Could not find FVD class for: RMI:sessions.errors.BaseRespDocument:5E24954A679738E0:4F8C6A6D58118691 vmcid: 0x0 minor code: 0 completed: No
at weblogic.corba.cos.codebase.CodeBaseImpl.meta(Ljava.lang.String
Lorg.omg.CORBA.ValueDefPackage.FullValueDescription;(CodeBaseImpl.java:104)
at weblogic.corba.cos.codebase.CodeBaseImpl_WLSkel.invoke(ILweblogic.rmi.spi.InboundRequest;Lweblogic.rmi.spi.OutboundResponse;Ljava.lang.Object
Lweblogic.rmi.spi.OutboundResponse;(Unknown Source)
at weblogic.rmi.internal.BasicServerRef.invoke(Lweblogic.rmi.extensions.server.RuntimeMethodDescriptor;Lweblogic.rmi.spi.InboundRequest;Lweblogic.rmi.spi.OutboundResponse
V(BasicServerRef.java:477)
at weblogic.rmi.internal.BasicServerRef$1.run()Ljava.lang.Object;(BasicServerRef.java:420)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Lweblogic.security.subject.AbstractSubject;Ljava.security.PrivilegedExceptionAction
Ljava.lang.Object;(AuthenticatedSubject.java:353)
at weblogic.security.service.SecurityManager.runAs(Lweblogic.security.acl.internal.AuthenticatedSubject;Lweblogic.security.acl.internal.AuthenticatedSubject;Ljava.security.PrivilegedExceptionAction
Ljava.lang.Object;(SecurityManager.java:144)
at weblogic.rmi.internal.BasicServerRef.handleRequest(Lweblogic.rmi.spi.InboundRequest
V(BasicServerRef.java:415)
at weblogic.rmi.internal.BasicExecuteRequest.execute(Lweblogic.kernel.ExecuteThread
V(BasicExecuteRequest.java:30)
at weblogic.kernel.ExecuteThread.execute(Lweblogic.kernel.ExecuteRequest
V(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run()V(ExecuteThread.java:170)
at java.lang.Thread.startThreadFromVM(Ljava.lang.Thread
V(Unknown Source)