Home » Eclipse Projects » Eclipse Platform » java.lang.NoClassDefFoundError and RMI
java.lang.NoClassDefFoundError and RMI [message #273806] |
Tue, 12 October 2004 08:29  |
Eclipse User |
|
|
|
Originally posted by: James.Poli.sas.com
I'm getting a NoClassDefFoundError when I run a plug-in under the PDE that
runs an RMI client. It's Eclipse 3.0 productions running under Windows.
If I take the same code and run it under Eclipse as a java project it works
fine. After turning on some logging it appears that the culprit maybe the
EclipseClassloader not find the stub correctly in jar under my plug-in
lib/jars directory. Is there a way I can get the normal sun classloader
to run or get the Eclipse class loader to work? I've copied the jars
everywhere I can think of, in the .project directory, added them to
the plugin.xml <runtime> tags, etc.
Thanks in advance,
Jim
------------- PrintStackTrace -------------
Oct 12, 2004 8:18:28 AM sun.rmi.server.LoaderHandler loadClass
FINE: main: name = "com.tymeac.base.TymeacStandardImpl_Stub", codebase =
"http://letour.unx.sas.com/classesJXR2/", defaultLoader =
org.eclipse.core.runtime.adaptor.EclipseClassLoader@12ce574
Oct 12, 2004 8:18:28 AM sun.rmi.server.LoaderHandler loadClass
FINER: main: (thread context class loader:
sun.misc.Launcher$AppClassLoader@e80a59)
java.lang.NoClassDefFoundError: com/tymeac/common/TymeacInterface
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:537)
at java.security.SecureClassLoader.defineClass(SecureClassLoade r.java:123)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)
at java.net.URLClassLoader.access$100(URLClassLoader.java:55)
at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302 )
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:219)
at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:43 0)
at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:16 5)
at java.rmi.server.RMIClassLoader$2.loadClass(RMIClassLoader.ja va:631)
at java.rmi.server.RMIClassLoader.loadClass(RMIClassLoader.java :257)
at
sun.rmi.server.MarshalInputStream.resolveClass(MarshalInputS tream.java:200)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream .java:1513)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.ja va:1435)
at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStre am.java:1626)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java :1274)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java: 324)
at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
at java.rmi.Naming.lookup(Naming.java:84)
at com.tymeac.client.TySvrComm.doRMI(TySvrComm.java:395)
....
|
|
| | |
Re: java.lang.NoClassDefFoundError and RMI [message #273944 is a reply to message #273806] |
Wed, 13 October 2004 14:33   |
Eclipse User |
|
|
|
Originally posted by: igorf.ca.ibm.com
The stack trace suggests that thread context classloader is being used,
so as a guess I would recommend setting thread context classloader to
the classloader of your plugin. Something like
ClassLoader old = Thread.currentThread().getContextClassLoader();
try {
Thrad.currentThread()
.setContextClassLoader(MyPlugin.class.getClassLoader());
... do your RMI stuff here
} finally {
Thrad.currentThread()
.setContextClassLoader(old);
}
James Poli wrote:
> I'm getting a NoClassDefFoundError when I run a plug-in under the PDE that
> runs an RMI client. It's Eclipse 3.0 productions running under Windows.
> If I take the same code and run it under Eclipse as a java project it works
> fine. After turning on some logging it appears that the culprit maybe the
> EclipseClassloader not find the stub correctly in jar under my plug-in
> lib/jars directory. Is there a way I can get the normal sun classloader
> to run or get the Eclipse class loader to work? I've copied the jars
> everywhere I can think of, in the .project directory, added them to
> the plugin.xml <runtime> tags, etc.
>
> Thanks in advance,
> Jim
>
>
> ------------- PrintStackTrace -------------
> Oct 12, 2004 8:18:28 AM sun.rmi.server.LoaderHandler loadClass
> FINE: main: name = "com.tymeac.base.TymeacStandardImpl_Stub", codebase =
> "http://letour.unx.sas.com/classesJXR2/", defaultLoader =
> org.eclipse.core.runtime.adaptor.EclipseClassLoader@12ce574
> Oct 12, 2004 8:18:28 AM sun.rmi.server.LoaderHandler loadClass
> FINER: main: (thread context class loader:
> sun.misc.Launcher$AppClassLoader@e80a59)
> java.lang.NoClassDefFoundError: com/tymeac/common/TymeacInterface
> at java.lang.ClassLoader.defineClass0(Native Method)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:537)
> at java.security.SecureClassLoader.defineClass(SecureClassLoade r.java:123)
> at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)
> at java.net.URLClassLoader.access$100(URLClassLoader.java:55)
> at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302 )
> at java.lang.Class.forName0(Native Method)
> at java.lang.Class.forName(Class.java:219)
> at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:43 0)
> at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:16 5)
> at java.rmi.server.RMIClassLoader$2.loadClass(RMIClassLoader.ja va:631)
> at java.rmi.server.RMIClassLoader.loadClass(RMIClassLoader.java :257)
> at
> sun.rmi.server.MarshalInputStream.resolveClass(MarshalInputS tream.java:200)
> at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream .java:1513)
> at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.ja va:1435)
> at
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStre am.java:1626)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java :1274)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java: 324)
> at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
> at java.rmi.Naming.lookup(Naming.java:84)
> at com.tymeac.client.TySvrComm.doRMI(TySvrComm.java:395)
> ...
>
>
|
|
|
Re: java.lang.NoClassDefFoundError and RMI [message #273956 is a reply to message #273944] |
Wed, 13 October 2004 16:26   |
Eclipse User |
|
|
|
Originally posted by: James.Poli.sas.com
Igor,
Thanks for the help, your correct I needed to change the classloader. Ah the
fun of RMI.
Regards,
Jim
"Igor Fedorenko" <igorf@ca.ibm.com> wrote in message
news:ckjs7a$c15$1@eclipse.org...
> The stack trace suggests that thread context classloader is being used,
> so as a guess I would recommend setting thread context classloader to
> the classloader of your plugin. Something like
>
> ClassLoader old = Thread.currentThread().getContextClassLoader();
> try {
> Thrad.currentThread()
> .setContextClassLoader(MyPlugin.class.getClassLoader());
> ... do your RMI stuff here
> } finally {
> Thrad.currentThread()
> .setContextClassLoader(old);
> }
>
> James Poli wrote:
>
> > I'm getting a NoClassDefFoundError when I run a plug-in under the PDE
that
> > runs an RMI client. It's Eclipse 3.0 productions running under Windows.
> > If I take the same code and run it under Eclipse as a java project it
works
> > fine. After turning on some logging it appears that the culprit maybe
the
> > EclipseClassloader not find the stub correctly in jar under my plug-in
> > lib/jars directory. Is there a way I can get the normal sun classloader
> > to run or get the Eclipse class loader to work? I've copied the jars
> > everywhere I can think of, in the .project directory, added them to
> > the plugin.xml <runtime> tags, etc.
> >
> > Thanks in advance,
> > Jim
> >
> >
> > ------------- PrintStackTrace -------------
> > Oct 12, 2004 8:18:28 AM sun.rmi.server.LoaderHandler loadClass
> > FINE: main: name = "com.tymeac.base.TymeacStandardImpl_Stub", codebase =
> > "http://letour.unx.sas.com/classesJXR2/", defaultLoader =
> > org.eclipse.core.runtime.adaptor.EclipseClassLoader@12ce574
> > Oct 12, 2004 8:18:28 AM sun.rmi.server.LoaderHandler loadClass
> > FINER: main: (thread context class loader:
> > sun.misc.Launcher$AppClassLoader@e80a59)
> > java.lang.NoClassDefFoundError: com/tymeac/common/TymeacInterface
> > at java.lang.ClassLoader.defineClass0(Native Method)
> > at java.lang.ClassLoader.defineClass(ClassLoader.java:537)
> > at
java.security.SecureClassLoader.defineClass(SecureClassLoade r.java:123)
> > at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)
> > at java.net.URLClassLoader.access$100(URLClassLoader.java:55)
> > at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
> > at java.security.AccessController.doPrivileged(Native Method)
> > at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
> > at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
> > at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
> > at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302 )
> > at java.lang.Class.forName0(Native Method)
> > at java.lang.Class.forName(Class.java:219)
> > at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:43 0)
> > at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:16 5)
> > at java.rmi.server.RMIClassLoader$2.loadClass(RMIClassLoader.ja va:631)
> > at java.rmi.server.RMIClassLoader.loadClass(RMIClassLoader.java :257)
> > at
> >
sun.rmi.server.MarshalInputStream.resolveClass(MarshalInputS tream.java:200)
> > at
java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream .java:1513)
> > at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.ja va:1435)
> > at
> >
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStre am.java:1626)
> > at java.io.ObjectInputStream.readObject0(ObjectInputStream.java :1274)
> > at java.io.ObjectInputStream.readObject(ObjectInputStream.java: 324)
> > at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
> > at java.rmi.Naming.lookup(Naming.java:84)
> > at com.tymeac.client.TySvrComm.doRMI(TySvrComm.java:395)
> > ...
> >
> >
|
|
|
Re: java.lang.NoClassDefFoundError and RMI [message #274131 is a reply to message #273956] |
Sat, 16 October 2004 18:40  |
Eclipse User |
|
|
|
Especially when it gets to RMI in plugins.
Genady
James Poli wrote:
>Igor,
>
>Thanks for the help, your correct I needed to change the classloader. Ah the
>fun of RMI.
>
>Regards,
>Jim
>
>"Igor Fedorenko" <igorf@ca.ibm.com> wrote in message
>news:ckjs7a$c15$1@eclipse.org...
>
>
>>The stack trace suggests that thread context classloader is being used,
>>so as a guess I would recommend setting thread context classloader to
>>the classloader of your plugin. Something like
>>
>>ClassLoader old = Thread.currentThread().getContextClassLoader();
>>try {
>> Thrad.currentThread()
>> .setContextClassLoader(MyPlugin.class.getClassLoader());
>> ... do your RMI stuff here
>>} finally {
>> Thrad.currentThread()
>> .setContextClassLoader(old);
>>}
>>
>>James Poli wrote:
>>
>>
>>
>>>I'm getting a NoClassDefFoundError when I run a plug-in under the PDE
>>>
>>>
>that
>
>
>>>runs an RMI client. It's Eclipse 3.0 productions running under Windows.
>>>If I take the same code and run it under Eclipse as a java project it
>>>
>>>
>works
>
>
>>>fine. After turning on some logging it appears that the culprit maybe
>>>
>>>
>the
>
>
>>>EclipseClassloader not find the stub correctly in jar under my plug-in
>>>lib/jars directory. Is there a way I can get the normal sun classloader
>>>to run or get the Eclipse class loader to work? I've copied the jars
>>>everywhere I can think of, in the .project directory, added them to
>>>the plugin.xml <runtime> tags, etc.
>>>
>>>Thanks in advance,
>>>Jim
>>>
>>>
>>> ------------- PrintStackTrace -------------
>>>Oct 12, 2004 8:18:28 AM sun.rmi.server.LoaderHandler loadClass
>>>FINE: main: name = "com.tymeac.base.TymeacStandardImpl_Stub", codebase =
>>>"http://letour.unx.sas.com/classesJXR2/", defaultLoader =
>>>org.eclipse.core.runtime.adaptor.EclipseClassLoader@12ce574
>>>Oct 12, 2004 8:18:28 AM sun.rmi.server.LoaderHandler loadClass
>>>FINER: main: (thread context class loader:
>>>sun.misc.Launcher$AppClassLoader@e80a59)
>>>java.lang.NoClassDefFoundError: com/tymeac/common/TymeacInterface
>>> at java.lang.ClassLoader.defineClass0(Native Method)
>>> at java.lang.ClassLoader.defineClass(ClassLoader.java:537)
>>> at
>>>
>>>
> java.security.SecureClassLoader.defineClass(SecureClassLoade r.java:123)
>
>
>>> at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)
>>> at java.net.URLClassLoader.access$100(URLClassLoader.java:55)
>>> at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
>>> at java.security.AccessController.doPrivileged(Native Method)
>>> at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
>>> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302 )
>>> at java.lang.Class.forName0(Native Method)
>>> at java.lang.Class.forName(Class.java:219)
>>> at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:43 0)
>>> at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:16 5)
>>> at java.rmi.server.RMIClassLoader$2.loadClass(RMIClassLoader.ja va:631)
>>> at java.rmi.server.RMIClassLoader.loadClass(RMIClassLoader.java :257)
>>> at
>>>
>>>
>>>
> sun.rmi.server.MarshalInputStream.resolveClass(MarshalInputS tream.java:200)
>
>
>>> at
>>>
>>>
> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream .java:1513)
>
>
>>> at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.ja va:1435)
>>> at
>>>
>>>
>>>
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStre am.java:1626)
>
>
>>> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java :1274)
>>> at java.io.ObjectInputStream.readObject(ObjectInputStream.java: 324)
>>> at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
>>> at java.rmi.Naming.lookup(Naming.java:84)
>>> at com.tymeac.client.TySvrComm.doRMI(TySvrComm.java:395)
>>>...
>>>
>>>
>>>
>>>
>
>
>
>
|
|
|
Goto Forum:
Current Time: Wed May 14 12:36:50 EDT 2025
Powered by FUDForum. Page generated in 0.04614 seconds
|