[jira] Commented: (NANO-79) Class Generated by CGLibProxyFactory cannot be loaded from client

jira-yCVjj/[email protected] Fri, 28 May 2004 16:20:08 -0400 (EDT)
Newsgroups gmane.comp.java.nanocontainer.devel
Message-ID <[email protected]>
The following comment has been added to this issue:

     Author: Aslak Hellesoy
    Created: Fri, 28 May 2004 4:19 PM
       Body:
What jars are on your client's classpath?
---------------------------------------------------------------------
View this comment:
  http://jira.codehaus.org/browse/NANO-79?page=comments#action_20166

---------------------------------------------------------------------
View the issue:
  http://jira.codehaus.org/browse/NANO-79

Here is an overview of the issue:
---------------------------------------------------------------------
        Key: NANO-79
    Summary: Class Generated by CGLibProxyFactory cannot be loaded from client
       Type: Bug

     Status: Unassigned
   Priority: Major

 Original Estimate: Unknown
 Time Spent: Unknown
  Remaining: Unknown

    Project: NanoContainer
 Components: 
             remoting
   Versions:
             1.0-beta-1

   Assignee: 
   Reporter: Philipp Meier

    Created: Fri, 28 May 2004 8:58 AM
    Updated: Fri, 28 May 2004 4:19 PM

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


---------------------------------------------------------------------
JIRA INFORMATION:
This message is automatically generated by JIRA.

If you think it was sent incorrectly contact one of the administrators:
   http://jira.codehaus.org/secure/Administrators.jspa

If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira