Details
-
Type:
Bug
-
Status:
Open
-
Priority:
Major
-
Resolution: Unresolved
-
Labels:None
-
Number of attachments :
Description
Nano remoting is unusable in a client server environment because the ProxyFactory generates classes on the fly which cannot be loaded by the client:
—
ava.rmi.UnmarshalException: error unmarshalling return; nested exception is:
java.lang.ClassNotFoundException: de.fnogol.ras.gsstest.SampleService$$EnhancerByCGLIB$$8ae7b27e (no security manager: RMI class loader disabled)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:169)
at org.nanocontainer.remoting.NanoNamingImpl_Stub.lookup(Unknown Source)
at de.fnogol.ras.gsstest.Blubb.client(Blubb.java:44)
at de.fnogol.ras.gsstest.Blubb.main(Blubb.java:32)
Caused by: java.lang.ClassNotFoundException: de.fnogol.ras.gsstest.SampleService$$EnhancerByCGLIB$$8ae7b27e (no security manager: RMI class loader disabled)
at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:371)
at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:165)
at java.rmi.server.RMIClassLoader$2.loadClass(RMIClassLoader.java:631)
at java.rmi.server.RMIClassLoader.loadClass(RMIClassLoader.java:257)
at sun.rmi.server.MarshalInputStream.resolveClass(MarshalInputStream.java:200)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1513)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1435)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1626)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324)
at sun.rmi.server.UnicastRef.unmarshalValue(UnicastRef.java:297)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:146)
I tried different classloader setups and came to the insight that dynamically generated classes cannot be transferred to the client which renders the current implementation unusable by design.
The testcases succeed because client and server run in the same JVM
What jars are on your client's classpath?