You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@felix.apache.org by Siamak Haschemi <ha...@informatik.hu-berlin.de> on 2008/06/04 12:06:38 UTC
Classloader Problem while trying to used FreePastry (wrapped as an
OSGi bundle)
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hello to all,
I've tried to wrap the FreePastry framework
(http://freepastry.rice.edu/FreePastry/FreePastry-2.1beta.jar) as an
OSGi bundle an use it from another bundle. The code using FreePastry is
from the tutorial on the website
(http://freepastry.org/FreePastry/tutorial/tut_multiple_nodes.html#lesson4).
I can also attach it, if it helps.
The bnd file for wrapping the jar looks as follows:
- --------------
Bundle-Version=2.1.0.beta
Private-Package: *
Export-Package:
!rice.tutorial.*,rice.environment.*;version=2.1.0.beta,rice.p2p.commonapi.*;version=2.1.0.beta,rice.pastry.*;version=2.1.0.beta
Import-Package: !org.junit.*,*;resolution:=optional
- --------------
The Manifest of my bundle (which uses the pastry bundle) looks like this:
- --------------
Manifest-Version: 1.0
Export-Package: de.hu_berlin.metrik.osgi.simulation.pastry;uses:="rice
.environment,rice.pastry.leafset,rice.environment.params,rice.environ
ment.time,rice.pastry,rice.pastry.socket,org.osgi.framework,rice.p2p.
commonapi,rice.pastry.standard"
Built-By: haschemi
Tool: Bnd-0.0.238
Bundle-Name: de.hu_berlin.metrik.osgi.simulation.pastry
Created-By: Apache Maven Bundle Plugin
Bundle-Version: 0.0.1.SNAPSHOT
Build-Jdk: 1.6.0_04
Bnd-LastModified: 1212516599543
Bundle-ManifestVersion: 2
Bundle-Activator: de.hu_berlin.metrik.osgi.simulation.pastry.Activator
Import-Package: de.hu_berlin.metrik.osgi.simulation.pastry,org.osgi.fr
amework;version="1.3",rice.environment,rice.environment.params,rice.e
nvironment.time,rice.p2p.commonapi,rice.pastry,rice.pastry.leafset,ri
ce.pastry.socket,rice.pastry.standard
Bundle-SymbolicName: de.hu_berlin.metrik.osgi.simulation.pastry
- -------------
Then is start my bundle, it seems that the deserialization of a message
fails because of a NoClassDefFoundError. The following error occures:
:rice.selector@Default:20080604.114300.740:ERROR (SelectorManager.run):
java.lang.NoClassDefFoundError: rice/p2p/commonapi/Message
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at
org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.searchDynamicImports(R4SearchPolicyCore.java:597)
at
org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClassOrResource(R4SearchPolicyCore.java:475)
at
org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClass(R4SearchPolicyCore.java:186)
at
org.apache.felix.framework.searchpolicy.R4SearchPolicy.findClass(R4SearchPolicy.java:45)
at
org.apache.felix.framework.searchpolicy.ContentClassLoader.loadClass(ContentClassLoader.java:109)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:604)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
at
rice.pastry.messaging.JavaSerializedDeserializer.deserialize(JavaSerializedDeserializer.java:81)
at
rice.pastry.commonapi.PastryEndpointMessage.<init>(PastryEndpointMessage.java:158)
at
rice.pastry.commonapi.PastryEndpoint$PEDeserializer.deserialize(PastryEndpoint.java:77)
at rice.pastry.routing.RouteMessage.unwrap(RouteMessage.java:529)
at
rice.pastry.commonapi.PastryEndpoint.receiveMessage(PastryEndpoint.java:553)
at
rice.pastry.standard.StandardRouter.deliverToApplication(StandardRouter.java:504)
at
rice.pastry.standard.StandardRouter.receiveRouteMessage(StandardRouter.java:263)
at rice.pastry.standard.StandardRouter.route(StandardRouter.java:163)
at
rice.pastry.standard.StandardRouter.receiveMessage(StandardRouter.java:150)
at
rice.pastry.messaging.MessageDispatch.dispatchMessage(MessageDispatch.java:146)
at rice.pastry.PastryNode.receiveMessage(PastryNode.java:468)
at rice.pastry.PastryNode.messageReceived(PastryNode.java:1076)
at rice.pastry.PastryNode.messageReceived(PastryNode.java:92)
at
org.mpisws.p2p.transport.commonapi.CommonAPITransportLayerImpl.messageReceived(CommonAPITransportLayerImpl.java:232)
at
org.mpisws.p2p.transport.commonapi.CommonAPITransportLayerImpl.messageReceived(CommonAPITransportLayerImpl.java:65)
at
org.mpisws.p2p.transport.identity.IdentityImpl$UpperIdentityImpl.messageReceived(IdentityImpl.java:1080)
at
org.mpisws.p2p.transport.priority.PriorityTransportLayerImpl$EntityManager$BufferReader.done(PriorityTransportLayerImpl.java:1251)
at
org.mpisws.p2p.transport.priority.PriorityTransportLayerImpl$EntityManager$BufferReader.receiveSelectResult(PriorityTransportLayerImpl.java:1215)
at
org.mpisws.p2p.transport.util.SocketWrapperSocket.receiveSelectResult(SocketWrapperSocket.java:140)
at
org.mpisws.p2p.transport.util.SocketWrapperSocket.receiveSelectResult(SocketWrapperSocket.java:140)
at
org.mpisws.p2p.transport.liveness.LivenessTransportLayerImpl$LSocket.receiveSelectResult(LivenessTransportLayerImpl.java:1088)
at
org.mpisws.p2p.transport.util.SocketWrapperSocket.receiveSelectResult(SocketWrapperSocket.java:140)
at
org.mpisws.p2p.transport.util.SocketWrapperSocket.receiveSelectResult(SocketWrapperSocket.java:140)
at
org.mpisws.p2p.transport.util.SocketWrapperSocket.receiveSelectResult(SocketWrapperSocket.java:140)
at org.mpisws.p2p.transport.wire.SocketManager.read(SocketManager.java:322)
at rice.selector.SelectorManager.doSelections(SelectorManager.java:394)
at rice.selector.SelectorManager.run(SelectorManager.java:255)
Caused by: java.lang.ClassNotFoundException: rice.p2p.commonapi.Message
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
... 53 more
:rice.environment.exception.simple:20080604.114300.755:handleException(Thread[Selector
Thread -- Default,5,main]) java.lang.NoClassDefFoundError:
rice/p2p/commonapi/Message
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at
org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.searchDynamicImports(R4SearchPolicyCore.java:597)
at
org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClassOrResource(R4SearchPolicyCore.java:475)
at
org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClass(R4SearchPolicyCore.java:186)
at
org.apache.felix.framework.searchpolicy.R4SearchPolicy.findClass(R4SearchPolicy.java:45)
at
org.apache.felix.framework.searchpolicy.ContentClassLoader.loadClass(ContentClassLoader.java:109)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:604)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
at
rice.pastry.messaging.JavaSerializedDeserializer.deserialize(JavaSerializedDeserializer.java:81)
at
rice.pastry.commonapi.PastryEndpointMessage.<init>(PastryEndpointMessage.java:158)
at
rice.pastry.commonapi.PastryEndpoint$PEDeserializer.deserialize(PastryEndpoint.java:77)
at rice.pastry.routing.RouteMessage.unwrap(RouteMessage.java:529)
at
rice.pastry.commonapi.PastryEndpoint.receiveMessage(PastryEndpoint.java:553)
at
rice.pastry.standard.StandardRouter.deliverToApplication(StandardRouter.java:504)
at
rice.pastry.standard.StandardRouter.receiveRouteMessage(StandardRouter.java:263)
at rice.pastry.standard.StandardRouter.route(StandardRouter.java:163)
at
rice.pastry.standard.StandardRouter.receiveMessage(StandardRouter.java:150)
at
rice.pastry.messaging.MessageDispatch.dispatchMessage(MessageDispatch.java:146)
at rice.pastry.PastryNode.receiveMessage(PastryNode.java:468)
at rice.pastry.PastryNode.messageReceived(PastryNode.java:1076)
at rice.pastry.PastryNode.messageReceived(PastryNode.java:92)
at
org.mpisws.p2p.transport.commonapi.CommonAPITransportLayerImpl.messageReceived(CommonAPITransportLayerImpl.java:232)
at
org.mpisws.p2p.transport.commonapi.CommonAPITransportLayerImpl.messageReceived(CommonAPITransportLayerImpl.java:65)
at
org.mpisws.p2p.transport.identity.IdentityImpl$UpperIdentityImpl.messageReceived(IdentityImpl.java:1080)
at
org.mpisws.p2p.transport.priority.PriorityTransportLayerImpl$EntityManager$BufferReader.done(PriorityTransportLayerImpl.java:1251)
at
org.mpisws.p2p.transport.priority.PriorityTransportLayerImpl$EntityManager$BufferReader.receiveSelectResult(PriorityTransportLayerImpl.java:1215)
at
org.mpisws.p2p.transport.util.SocketWrapperSocket.receiveSelectResult(SocketWrapperSocket.java:140)
at
org.mpisws.p2p.transport.util.SocketWrapperSocket.receiveSelectResult(SocketWrapperSocket.java:140)
at
org.mpisws.p2p.transport.liveness.LivenessTransportLayerImpl$LSocket.receiveSelectResult(LivenessTransportLayerImpl.java:1088)
at
org.mpisws.p2p.transport.util.SocketWrapperSocket.receiveSelectResult(SocketWrapperSocket.java:140)
at
org.mpisws.p2p.transport.util.SocketWrapperSocket.receiveSelectResult(SocketWrapperSocket.java:140)
at
org.mpisws.p2p.transport.util.SocketWrapperSocket.receiveSelectResult(SocketWrapperSocket.java:140)
at org.mpisws.p2p.transport.wire.SocketManager.read(SocketManager.java:322)
at rice.selector.SelectorManager.doSelections(SelectorManager.java:394)
at rice.selector.SelectorManager.run(SelectorManager.java:255)
Caused by: java.lang.ClassNotFoundException: rice.p2p.commonapi.Message
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
... 53 more
Can someone give me a hint to where to start to find the problem?
Kind regards,
Siamak
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.8 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iEYEARECAAYFAkhGaS0ACgkQBLvtewtTERMV3gCeIHdSxTbTd4D1rRs7bFNO7r/y
JawAoIUxzmPjFYWp3mdsYAd8tKklMKOq
=FoZD
-----END PGP SIGNATURE-----
Re: Classloader Problem while trying to used FreePastry (wrapped
as an OSGi bundle)
Posted by Siamak Haschemi <ha...@informatik.hu-berlin.de>.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hello again,
one interesting thing I noticed. The tutorial code is also in the
original jar file. Like I show before, I excluded the tutorial code in
the bnd file with "!rice.tutorial.*".
Now, for experimenting a bit I decide to export them and to see what
happens if I call this code and it works. No Exceptions.
So why the same code fails in my bundle?
Kind regards,
Siamak
Siamak Haschemi schrieb:
> Hello Karl,
>
> do you you mean:
>
> Thread.currentThread().setContextClassLoader(getClass().getClassLoader());
>
> That sadly doesn't help. I see the same exception like before.
>
> It put this lines in the start() method of the Activator of my bundle,
> or do I have to create an activator for the 3rd library?
>
> Kind regards,
>
> Siamak
>
>
>
> Karl Pauls schrieb:
>> Try setting the thread context classloader to the classloader of your bundle.
>
>> regards,
>
>> Karl
>
>> On Wed, Jun 4, 2008 at 12:06 PM, Siamak Haschemi
>> <ha...@informatik.hu-berlin.de> wrote:
>> Hello to all,
>
>> I've tried to wrap the FreePastry framework
>> (http://freepastry.rice.edu/FreePastry/FreePastry-2.1beta.jar) as an
>> OSGi bundle an use it from another bundle. The code using FreePastry is
>> from the tutorial on the website
>> (http://freepastry.org/FreePastry/tutorial/tut_multiple_nodes.html#lesson4).
>> I can also attach it, if it helps.
>
>> The bnd file for wrapping the jar looks as follows:
>
>> --------------
>
>> Bundle-Version=2.1.0.beta
>> Private-Package: *
>> Export-Package:
>> !rice.tutorial.*,rice.environment.*;version=2.1.0.beta,rice.p2p.commonapi.*;version=2.1.0.beta,rice.pastry.*;version=2.1.0.beta
>> Import-Package: !org.junit.*,*;resolution:=optional
>
>> --------------
>
>> The Manifest of my bundle (which uses the pastry bundle) looks like this:
>
>> --------------
>
>> Manifest-Version: 1.0
>> Export-Package: de.hu_berlin.metrik.osgi.simulation.pastry;uses:="rice
>> .environment,rice.pastry.leafset,rice.environment.params,rice.environ
>> ment.time,rice.pastry,rice.pastry.socket,org.osgi.framework,rice.p2p.
>> commonapi,rice.pastry.standard"
>> Built-By: haschemi
>> Tool: Bnd-0.0.238
>> Bundle-Name: de.hu_berlin.metrik.osgi.simulation.pastry
>> Created-By: Apache Maven Bundle Plugin
>> Bundle-Version: 0.0.1.SNAPSHOT
>> Build-Jdk: 1.6.0_04
>> Bnd-LastModified: 1212516599543
>> Bundle-ManifestVersion: 2
>> Bundle-Activator: de.hu_berlin.metrik.osgi.simulation.pastry.Activator
>> Import-Package: de.hu_berlin.metrik.osgi.simulation.pastry,org.osgi.fr
>> amework;version="1.3",rice.environment,rice.environment.params,rice.e
>> nvironment.time,rice.p2p.commonapi,rice.pastry,rice.pastry.leafset,ri
>> ce.pastry.socket,rice.pastry.standard
>> Bundle-SymbolicName: de.hu_berlin.metrik.osgi.simulation.pastry
>
>> -------------
>
>> Then is start my bundle, it seems that the deserialization of a message
>> fails because of a NoClassDefFoundError. The following error occures:
>
>
>> :rice.selector@Default:20080604.114300.740:ERROR (SelectorManager.run):
>> java.lang.NoClassDefFoundError: rice/p2p/commonapi/Message
>> at java.lang.ClassLoader.defineClass1(Native Method)
>> at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
>> at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
>> at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
>> at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
>> at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
>> at java.security.AccessController.doPrivileged(Native Method)
>> at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
>> at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
>> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
>> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
>> at
>> org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.searchDynamicImports(R4SearchPolicyCore.java:597)
>> at
>> org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClassOrResource(R4SearchPolicyCore.java:475)
>> at
>> org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClass(R4SearchPolicyCore.java:186)
>> at
>> org.apache.felix.framework.searchpolicy.R4SearchPolicy.findClass(R4SearchPolicy.java:45)
>> at
>> org.apache.felix.framework.searchpolicy.ContentClassLoader.loadClass(ContentClassLoader.java:109)
>> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
>> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
>> at java.lang.Class.forName0(Native Method)
>> at java.lang.Class.forName(Class.java:247)
>> at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:604)
>> at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575)
>> at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
>> at
>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
>> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
>> at
>> rice.pastry.messaging.JavaSerializedDeserializer.deserialize(JavaSerializedDeserializer.java:81)
>> at
>> rice.pastry.commonapi.PastryEndpointMessage.<init>(PastryEndpointMessage.java:158)
>> at
>> rice.pastry.commonapi.PastryEndpoint$PEDeserializer.deserialize(PastryEndpoint.java:77)
>> at rice.pastry.routing.RouteMessage.unwrap(RouteMessage.java:529)
>> at
>> rice.pastry.commonapi.PastryEndpoint.receiveMessage(PastryEndpoint.java:553)
>> at
>> rice.pastry.standard.StandardRouter.deliverToApplication(StandardRouter.java:504)
>> at
>> rice.pastry.standard.StandardRouter.receiveRouteMessage(StandardRouter.java:263)
>> at rice.pastry.standard.StandardRouter.route(StandardRouter.java:163)
>> at
>> rice.pastry.standard.StandardRouter.receiveMessage(StandardRouter.java:150)
>> at
>> rice.pastry.messaging.MessageDispatch.dispatchMessage(MessageDispatch.java:146)
>> at rice.pastry.PastryNode.receiveMessage(PastryNode.java:468)
>> at rice.pastry.PastryNode.messageReceived(PastryNode.java:1076)
>> at rice.pastry.PastryNode.messageReceived(PastryNode.java:92)
>> at
>> org.mpisws.p2p.transport.commonapi.CommonAPITransportLayerImpl.messageReceived(CommonAPITransportLayerImpl.java:232)
>> at
>> org.mpisws.p2p.transport.commonapi.CommonAPITransportLayerImpl.messageReceived(CommonAPITransportLayerImpl.java:65)
>> at
>> org.mpisws.p2p.transport.identity.IdentityImpl$UpperIdentityImpl.messageReceived(IdentityImpl.java:1080)
>> at
>> org.mpisws.p2p.transport.priority.PriorityTransportLayerImpl$EntityManager$BufferReader.done(PriorityTransportLayerImpl.java:1251)
>> at
>> org.mpisws.p2p.transport.priority.PriorityTransportLayerImpl$EntityManager$BufferReader.receiveSelectResult(PriorityTransportLayerImpl.java:1215)
>> at
>> org.mpisws.p2p.transport.util.SocketWrapperSocket.receiveSelectResult(SocketWrapperSocket.java:140)
>> at
>> org.mpisws.p2p.transport.util.SocketWrapperSocket.receiveSelectResult(SocketWrapperSocket.java:140)
>> at
>> org.mpisws.p2p.transport.liveness.LivenessTransportLayerImpl$LSocket.receiveSelectResult(LivenessTransportLayerImpl.java:1088)
>> at
>> org.mpisws.p2p.transport.util.SocketWrapperSocket.receiveSelectResult(SocketWrapperSocket.java:140)
>> at
>> org.mpisws.p2p.transport.util.SocketWrapperSocket.receiveSelectResult(SocketWrapperSocket.java:140)
>> at
>> org.mpisws.p2p.transport.util.SocketWrapperSocket.receiveSelectResult(SocketWrapperSocket.java:140)
>> at org.mpisws.p2p.transport.wire.SocketManager.read(SocketManager.java:322)
>> at rice.selector.SelectorManager.doSelections(SelectorManager.java:394)
>> at rice.selector.SelectorManager.run(SelectorManager.java:255)
>> Caused by: java.lang.ClassNotFoundException: rice.p2p.commonapi.Message
>> at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
>> at java.security.AccessController.doPrivileged(Native Method)
>> at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
>> at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
>> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
>> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
>> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
>> ... 53 more
>> :rice.environment.exception.simple:20080604.114300.755:handleException(Thread[Selector
>> Thread -- Default,5,main]) java.lang.NoClassDefFoundError:
>> rice/p2p/commonapi/Message
>> at java.lang.ClassLoader.defineClass1(Native Method)
>> at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
>> at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
>> at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
>> at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
>> at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
>> at java.security.AccessController.doPrivileged(Native Method)
>> at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
>> at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
>> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
>> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
>> at
>> org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.searchDynamicImports(R4SearchPolicyCore.java:597)
>> at
>> org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClassOrResource(R4SearchPolicyCore.java:475)
>> at
>> org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClass(R4SearchPolicyCore.java:186)
>> at
>> org.apache.felix.framework.searchpolicy.R4SearchPolicy.findClass(R4SearchPolicy.java:45)
>> at
>> org.apache.felix.framework.searchpolicy.ContentClassLoader.loadClass(ContentClassLoader.java:109)
>> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
>> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
>> at java.lang.Class.forName0(Native Method)
>> at java.lang.Class.forName(Class.java:247)
>> at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:604)
>> at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575)
>> at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
>> at
>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
>> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
>> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
>> at
>> rice.pastry.messaging.JavaSerializedDeserializer.deserialize(JavaSerializedDeserializer.java:81)
>> at
>> rice.pastry.commonapi.PastryEndpointMessage.<init>(PastryEndpointMessage.java:158)
>> at
>> rice.pastry.commonapi.PastryEndpoint$PEDeserializer.deserialize(PastryEndpoint.java:77)
>> at rice.pastry.routing.RouteMessage.unwrap(RouteMessage.java:529)
>> at
>> rice.pastry.commonapi.PastryEndpoint.receiveMessage(PastryEndpoint.java:553)
>> at
>> rice.pastry.standard.StandardRouter.deliverToApplication(StandardRouter.java:504)
>> at
>> rice.pastry.standard.StandardRouter.receiveRouteMessage(StandardRouter.java:263)
>> at rice.pastry.standard.StandardRouter.route(StandardRouter.java:163)
>> at
>> rice.pastry.standard.StandardRouter.receiveMessage(StandardRouter.java:150)
>> at
>> rice.pastry.messaging.MessageDispatch.dispatchMessage(MessageDispatch.java:146)
>> at rice.pastry.PastryNode.receiveMessage(PastryNode.java:468)
>> at rice.pastry.PastryNode.messageReceived(PastryNode.java:1076)
>> at rice.pastry.PastryNode.messageReceived(PastryNode.java:92)
>> at
>> org.mpisws.p2p.transport.commonapi.CommonAPITransportLayerImpl.messageReceived(CommonAPITransportLayerImpl.java:232)
>> at
>> org.mpisws.p2p.transport.commonapi.CommonAPITransportLayerImpl.messageReceived(CommonAPITransportLayerImpl.java:65)
>> at
>> org.mpisws.p2p.transport.identity.IdentityImpl$UpperIdentityImpl.messageReceived(IdentityImpl.java:1080)
>> at
>> org.mpisws.p2p.transport.priority.PriorityTransportLayerImpl$EntityManager$BufferReader.done(PriorityTransportLayerImpl.java:1251)
>> at
>> org.mpisws.p2p.transport.priority.PriorityTransportLayerImpl$EntityManager$BufferReader.receiveSelectResult(PriorityTransportLayerImpl.java:1215)
>> at
>> org.mpisws.p2p.transport.util.SocketWrapperSocket.receiveSelectResult(SocketWrapperSocket.java:140)
>> at
>> org.mpisws.p2p.transport.util.SocketWrapperSocket.receiveSelectResult(SocketWrapperSocket.java:140)
>> at
>> org.mpisws.p2p.transport.liveness.LivenessTransportLayerImpl$LSocket.receiveSelectResult(LivenessTransportLayerImpl.java:1088)
>> at
>> org.mpisws.p2p.transport.util.SocketWrapperSocket.receiveSelectResult(SocketWrapperSocket.java:140)
>> at
>> org.mpisws.p2p.transport.util.SocketWrapperSocket.receiveSelectResult(SocketWrapperSocket.java:140)
>> at
>> org.mpisws.p2p.transport.util.SocketWrapperSocket.receiveSelectResult(SocketWrapperSocket.java:140)
>> at org.mpisws.p2p.transport.wire.SocketManager.read(SocketManager.java:322)
>> at rice.selector.SelectorManager.doSelections(SelectorManager.java:394)
>> at rice.selector.SelectorManager.run(SelectorManager.java:255)
>> Caused by: java.lang.ClassNotFoundException: rice.p2p.commonapi.Message
>> at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
>> at java.security.AccessController.doPrivileged(Native Method)
>> at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
>> at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
>> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
>> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
>> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
>> ... 53 more
>
>> Can someone give me a hint to where to start to find the problem?
>
>
>> Kind regards,
>
>> Siamak
>>>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
> For additional commands, e-mail: users-help@felix.apache.org
>
- ------------------------------------------------------------------------
- ---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
For additional commands, e-mail: users-help@felix.apache.org
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.8 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iEYEARECAAYFAkhGcM8ACgkQBLvtewtTERMMEACfRHPgUXRA0dSoG7ZimwXEJ//y
Hr0An0pRshKazAe+0Bfws6G1PI9CFjSJ
=4nmE
-----END PGP SIGNATURE-----
Re: Classloader Problem while trying to used FreePastry (wrapped
as an OSGi bundle)
Posted by Siamak Haschemi <ha...@informatik.hu-berlin.de>.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hello Karl,
do you you mean:
Thread.currentThread().setContextClassLoader(getClass().getClassLoader());
That sadly doesn't help. I see the same exception like before.
It put this lines in the start() method of the Activator of my bundle,
or do I have to create an activator for the 3rd library?
Kind regards,
Siamak
Karl Pauls schrieb:
> Try setting the thread context classloader to the classloader of your bundle.
>
> regards,
>
> Karl
>
> On Wed, Jun 4, 2008 at 12:06 PM, Siamak Haschemi
> <ha...@informatik.hu-berlin.de> wrote:
> Hello to all,
>
> I've tried to wrap the FreePastry framework
> (http://freepastry.rice.edu/FreePastry/FreePastry-2.1beta.jar) as an
> OSGi bundle an use it from another bundle. The code using FreePastry is
> from the tutorial on the website
> (http://freepastry.org/FreePastry/tutorial/tut_multiple_nodes.html#lesson4).
> I can also attach it, if it helps.
>
> The bnd file for wrapping the jar looks as follows:
>
> --------------
>
> Bundle-Version=2.1.0.beta
> Private-Package: *
> Export-Package:
> !rice.tutorial.*,rice.environment.*;version=2.1.0.beta,rice.p2p.commonapi.*;version=2.1.0.beta,rice.pastry.*;version=2.1.0.beta
> Import-Package: !org.junit.*,*;resolution:=optional
>
> --------------
>
> The Manifest of my bundle (which uses the pastry bundle) looks like this:
>
> --------------
>
> Manifest-Version: 1.0
> Export-Package: de.hu_berlin.metrik.osgi.simulation.pastry;uses:="rice
> .environment,rice.pastry.leafset,rice.environment.params,rice.environ
> ment.time,rice.pastry,rice.pastry.socket,org.osgi.framework,rice.p2p.
> commonapi,rice.pastry.standard"
> Built-By: haschemi
> Tool: Bnd-0.0.238
> Bundle-Name: de.hu_berlin.metrik.osgi.simulation.pastry
> Created-By: Apache Maven Bundle Plugin
> Bundle-Version: 0.0.1.SNAPSHOT
> Build-Jdk: 1.6.0_04
> Bnd-LastModified: 1212516599543
> Bundle-ManifestVersion: 2
> Bundle-Activator: de.hu_berlin.metrik.osgi.simulation.pastry.Activator
> Import-Package: de.hu_berlin.metrik.osgi.simulation.pastry,org.osgi.fr
> amework;version="1.3",rice.environment,rice.environment.params,rice.e
> nvironment.time,rice.p2p.commonapi,rice.pastry,rice.pastry.leafset,ri
> ce.pastry.socket,rice.pastry.standard
> Bundle-SymbolicName: de.hu_berlin.metrik.osgi.simulation.pastry
>
> -------------
>
> Then is start my bundle, it seems that the deserialization of a message
> fails because of a NoClassDefFoundError. The following error occures:
>
>
> :rice.selector@Default:20080604.114300.740:ERROR (SelectorManager.run):
> java.lang.NoClassDefFoundError: rice/p2p/commonapi/Message
> at java.lang.ClassLoader.defineClass1(Native Method)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
> at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
> at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
> at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
> at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
> at
> org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.searchDynamicImports(R4SearchPolicyCore.java:597)
> at
> org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClassOrResource(R4SearchPolicyCore.java:475)
> at
> org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClass(R4SearchPolicyCore.java:186)
> at
> org.apache.felix.framework.searchpolicy.R4SearchPolicy.findClass(R4SearchPolicy.java:45)
> at
> org.apache.felix.framework.searchpolicy.ContentClassLoader.loadClass(ContentClassLoader.java:109)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
> at java.lang.Class.forName0(Native Method)
> at java.lang.Class.forName(Class.java:247)
> at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:604)
> at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575)
> at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
> at
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
> at
> rice.pastry.messaging.JavaSerializedDeserializer.deserialize(JavaSerializedDeserializer.java:81)
> at
> rice.pastry.commonapi.PastryEndpointMessage.<init>(PastryEndpointMessage.java:158)
> at
> rice.pastry.commonapi.PastryEndpoint$PEDeserializer.deserialize(PastryEndpoint.java:77)
> at rice.pastry.routing.RouteMessage.unwrap(RouteMessage.java:529)
> at
> rice.pastry.commonapi.PastryEndpoint.receiveMessage(PastryEndpoint.java:553)
> at
> rice.pastry.standard.StandardRouter.deliverToApplication(StandardRouter.java:504)
> at
> rice.pastry.standard.StandardRouter.receiveRouteMessage(StandardRouter.java:263)
> at rice.pastry.standard.StandardRouter.route(StandardRouter.java:163)
> at
> rice.pastry.standard.StandardRouter.receiveMessage(StandardRouter.java:150)
> at
> rice.pastry.messaging.MessageDispatch.dispatchMessage(MessageDispatch.java:146)
> at rice.pastry.PastryNode.receiveMessage(PastryNode.java:468)
> at rice.pastry.PastryNode.messageReceived(PastryNode.java:1076)
> at rice.pastry.PastryNode.messageReceived(PastryNode.java:92)
> at
> org.mpisws.p2p.transport.commonapi.CommonAPITransportLayerImpl.messageReceived(CommonAPITransportLayerImpl.java:232)
> at
> org.mpisws.p2p.transport.commonapi.CommonAPITransportLayerImpl.messageReceived(CommonAPITransportLayerImpl.java:65)
> at
> org.mpisws.p2p.transport.identity.IdentityImpl$UpperIdentityImpl.messageReceived(IdentityImpl.java:1080)
> at
> org.mpisws.p2p.transport.priority.PriorityTransportLayerImpl$EntityManager$BufferReader.done(PriorityTransportLayerImpl.java:1251)
> at
> org.mpisws.p2p.transport.priority.PriorityTransportLayerImpl$EntityManager$BufferReader.receiveSelectResult(PriorityTransportLayerImpl.java:1215)
> at
> org.mpisws.p2p.transport.util.SocketWrapperSocket.receiveSelectResult(SocketWrapperSocket.java:140)
> at
> org.mpisws.p2p.transport.util.SocketWrapperSocket.receiveSelectResult(SocketWrapperSocket.java:140)
> at
> org.mpisws.p2p.transport.liveness.LivenessTransportLayerImpl$LSocket.receiveSelectResult(LivenessTransportLayerImpl.java:1088)
> at
> org.mpisws.p2p.transport.util.SocketWrapperSocket.receiveSelectResult(SocketWrapperSocket.java:140)
> at
> org.mpisws.p2p.transport.util.SocketWrapperSocket.receiveSelectResult(SocketWrapperSocket.java:140)
> at
> org.mpisws.p2p.transport.util.SocketWrapperSocket.receiveSelectResult(SocketWrapperSocket.java:140)
> at org.mpisws.p2p.transport.wire.SocketManager.read(SocketManager.java:322)
> at rice.selector.SelectorManager.doSelections(SelectorManager.java:394)
> at rice.selector.SelectorManager.run(SelectorManager.java:255)
> Caused by: java.lang.ClassNotFoundException: rice.p2p.commonapi.Message
> at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
> ... 53 more
> :rice.environment.exception.simple:20080604.114300.755:handleException(Thread[Selector
> Thread -- Default,5,main]) java.lang.NoClassDefFoundError:
> rice/p2p/commonapi/Message
> at java.lang.ClassLoader.defineClass1(Native Method)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
> at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
> at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
> at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
> at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
> at
> org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.searchDynamicImports(R4SearchPolicyCore.java:597)
> at
> org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClassOrResource(R4SearchPolicyCore.java:475)
> at
> org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClass(R4SearchPolicyCore.java:186)
> at
> org.apache.felix.framework.searchpolicy.R4SearchPolicy.findClass(R4SearchPolicy.java:45)
> at
> org.apache.felix.framework.searchpolicy.ContentClassLoader.loadClass(ContentClassLoader.java:109)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
> at java.lang.Class.forName0(Native Method)
> at java.lang.Class.forName(Class.java:247)
> at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:604)
> at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575)
> at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
> at
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
> at
> rice.pastry.messaging.JavaSerializedDeserializer.deserialize(JavaSerializedDeserializer.java:81)
> at
> rice.pastry.commonapi.PastryEndpointMessage.<init>(PastryEndpointMessage.java:158)
> at
> rice.pastry.commonapi.PastryEndpoint$PEDeserializer.deserialize(PastryEndpoint.java:77)
> at rice.pastry.routing.RouteMessage.unwrap(RouteMessage.java:529)
> at
> rice.pastry.commonapi.PastryEndpoint.receiveMessage(PastryEndpoint.java:553)
> at
> rice.pastry.standard.StandardRouter.deliverToApplication(StandardRouter.java:504)
> at
> rice.pastry.standard.StandardRouter.receiveRouteMessage(StandardRouter.java:263)
> at rice.pastry.standard.StandardRouter.route(StandardRouter.java:163)
> at
> rice.pastry.standard.StandardRouter.receiveMessage(StandardRouter.java:150)
> at
> rice.pastry.messaging.MessageDispatch.dispatchMessage(MessageDispatch.java:146)
> at rice.pastry.PastryNode.receiveMessage(PastryNode.java:468)
> at rice.pastry.PastryNode.messageReceived(PastryNode.java:1076)
> at rice.pastry.PastryNode.messageReceived(PastryNode.java:92)
> at
> org.mpisws.p2p.transport.commonapi.CommonAPITransportLayerImpl.messageReceived(CommonAPITransportLayerImpl.java:232)
> at
> org.mpisws.p2p.transport.commonapi.CommonAPITransportLayerImpl.messageReceived(CommonAPITransportLayerImpl.java:65)
> at
> org.mpisws.p2p.transport.identity.IdentityImpl$UpperIdentityImpl.messageReceived(IdentityImpl.java:1080)
> at
> org.mpisws.p2p.transport.priority.PriorityTransportLayerImpl$EntityManager$BufferReader.done(PriorityTransportLayerImpl.java:1251)
> at
> org.mpisws.p2p.transport.priority.PriorityTransportLayerImpl$EntityManager$BufferReader.receiveSelectResult(PriorityTransportLayerImpl.java:1215)
> at
> org.mpisws.p2p.transport.util.SocketWrapperSocket.receiveSelectResult(SocketWrapperSocket.java:140)
> at
> org.mpisws.p2p.transport.util.SocketWrapperSocket.receiveSelectResult(SocketWrapperSocket.java:140)
> at
> org.mpisws.p2p.transport.liveness.LivenessTransportLayerImpl$LSocket.receiveSelectResult(LivenessTransportLayerImpl.java:1088)
> at
> org.mpisws.p2p.transport.util.SocketWrapperSocket.receiveSelectResult(SocketWrapperSocket.java:140)
> at
> org.mpisws.p2p.transport.util.SocketWrapperSocket.receiveSelectResult(SocketWrapperSocket.java:140)
> at
> org.mpisws.p2p.transport.util.SocketWrapperSocket.receiveSelectResult(SocketWrapperSocket.java:140)
> at org.mpisws.p2p.transport.wire.SocketManager.read(SocketManager.java:322)
> at rice.selector.SelectorManager.doSelections(SelectorManager.java:394)
> at rice.selector.SelectorManager.run(SelectorManager.java:255)
> Caused by: java.lang.ClassNotFoundException: rice.p2p.commonapi.Message
> at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
> ... 53 more
>
> Can someone give me a hint to where to start to find the problem?
>
>
> Kind regards,
>
> Siamak
>>
>>
- ---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
For additional commands, e-mail: users-help@felix.apache.org
>>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.8 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iEYEARECAAYFAkhGbHkACgkQBLvtewtTERM/JgCcDHAvtmlFFK+56bPcUXkA/YpF
eacAnjr6Fy1b1pr5T6DqkoLpypbe99oG
=K4+M
-----END PGP SIGNATURE-----
Re: Classloader Problem while trying to used FreePastry (wrapped as an OSGi bundle)
Posted by Karl Pauls <ka...@gmail.com>.
Try setting the thread context classloader to the classloader of your bundle.
regards,
Karl
On Wed, Jun 4, 2008 at 12:06 PM, Siamak Haschemi
<ha...@informatik.hu-berlin.de> wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Hello to all,
>
> I've tried to wrap the FreePastry framework
> (http://freepastry.rice.edu/FreePastry/FreePastry-2.1beta.jar) as an
> OSGi bundle an use it from another bundle. The code using FreePastry is
> from the tutorial on the website
> (http://freepastry.org/FreePastry/tutorial/tut_multiple_nodes.html#lesson4).
> I can also attach it, if it helps.
>
> The bnd file for wrapping the jar looks as follows:
>
> - --------------
>
> Bundle-Version=2.1.0.beta
> Private-Package: *
> Export-Package:
> !rice.tutorial.*,rice.environment.*;version=2.1.0.beta,rice.p2p.commonapi.*;version=2.1.0.beta,rice.pastry.*;version=2.1.0.beta
> Import-Package: !org.junit.*,*;resolution:=optional
>
> - --------------
>
> The Manifest of my bundle (which uses the pastry bundle) looks like this:
>
> - --------------
>
> Manifest-Version: 1.0
> Export-Package: de.hu_berlin.metrik.osgi.simulation.pastry;uses:="rice
> .environment,rice.pastry.leafset,rice.environment.params,rice.environ
> ment.time,rice.pastry,rice.pastry.socket,org.osgi.framework,rice.p2p.
> commonapi,rice.pastry.standard"
> Built-By: haschemi
> Tool: Bnd-0.0.238
> Bundle-Name: de.hu_berlin.metrik.osgi.simulation.pastry
> Created-By: Apache Maven Bundle Plugin
> Bundle-Version: 0.0.1.SNAPSHOT
> Build-Jdk: 1.6.0_04
> Bnd-LastModified: 1212516599543
> Bundle-ManifestVersion: 2
> Bundle-Activator: de.hu_berlin.metrik.osgi.simulation.pastry.Activator
> Import-Package: de.hu_berlin.metrik.osgi.simulation.pastry,org.osgi.fr
> amework;version="1.3",rice.environment,rice.environment.params,rice.e
> nvironment.time,rice.p2p.commonapi,rice.pastry,rice.pastry.leafset,ri
> ce.pastry.socket,rice.pastry.standard
> Bundle-SymbolicName: de.hu_berlin.metrik.osgi.simulation.pastry
>
> - -------------
>
> Then is start my bundle, it seems that the deserialization of a message
> fails because of a NoClassDefFoundError. The following error occures:
>
>
> :rice.selector@Default:20080604.114300.740:ERROR (SelectorManager.run):
> java.lang.NoClassDefFoundError: rice/p2p/commonapi/Message
> at java.lang.ClassLoader.defineClass1(Native Method)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
> at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
> at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
> at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
> at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
> at
> org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.searchDynamicImports(R4SearchPolicyCore.java:597)
> at
> org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClassOrResource(R4SearchPolicyCore.java:475)
> at
> org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClass(R4SearchPolicyCore.java:186)
> at
> org.apache.felix.framework.searchpolicy.R4SearchPolicy.findClass(R4SearchPolicy.java:45)
> at
> org.apache.felix.framework.searchpolicy.ContentClassLoader.loadClass(ContentClassLoader.java:109)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
> at java.lang.Class.forName0(Native Method)
> at java.lang.Class.forName(Class.java:247)
> at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:604)
> at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575)
> at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
> at
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
> at
> rice.pastry.messaging.JavaSerializedDeserializer.deserialize(JavaSerializedDeserializer.java:81)
> at
> rice.pastry.commonapi.PastryEndpointMessage.<init>(PastryEndpointMessage.java:158)
> at
> rice.pastry.commonapi.PastryEndpoint$PEDeserializer.deserialize(PastryEndpoint.java:77)
> at rice.pastry.routing.RouteMessage.unwrap(RouteMessage.java:529)
> at
> rice.pastry.commonapi.PastryEndpoint.receiveMessage(PastryEndpoint.java:553)
> at
> rice.pastry.standard.StandardRouter.deliverToApplication(StandardRouter.java:504)
> at
> rice.pastry.standard.StandardRouter.receiveRouteMessage(StandardRouter.java:263)
> at rice.pastry.standard.StandardRouter.route(StandardRouter.java:163)
> at
> rice.pastry.standard.StandardRouter.receiveMessage(StandardRouter.java:150)
> at
> rice.pastry.messaging.MessageDispatch.dispatchMessage(MessageDispatch.java:146)
> at rice.pastry.PastryNode.receiveMessage(PastryNode.java:468)
> at rice.pastry.PastryNode.messageReceived(PastryNode.java:1076)
> at rice.pastry.PastryNode.messageReceived(PastryNode.java:92)
> at
> org.mpisws.p2p.transport.commonapi.CommonAPITransportLayerImpl.messageReceived(CommonAPITransportLayerImpl.java:232)
> at
> org.mpisws.p2p.transport.commonapi.CommonAPITransportLayerImpl.messageReceived(CommonAPITransportLayerImpl.java:65)
> at
> org.mpisws.p2p.transport.identity.IdentityImpl$UpperIdentityImpl.messageReceived(IdentityImpl.java:1080)
> at
> org.mpisws.p2p.transport.priority.PriorityTransportLayerImpl$EntityManager$BufferReader.done(PriorityTransportLayerImpl.java:1251)
> at
> org.mpisws.p2p.transport.priority.PriorityTransportLayerImpl$EntityManager$BufferReader.receiveSelectResult(PriorityTransportLayerImpl.java:1215)
> at
> org.mpisws.p2p.transport.util.SocketWrapperSocket.receiveSelectResult(SocketWrapperSocket.java:140)
> at
> org.mpisws.p2p.transport.util.SocketWrapperSocket.receiveSelectResult(SocketWrapperSocket.java:140)
> at
> org.mpisws.p2p.transport.liveness.LivenessTransportLayerImpl$LSocket.receiveSelectResult(LivenessTransportLayerImpl.java:1088)
> at
> org.mpisws.p2p.transport.util.SocketWrapperSocket.receiveSelectResult(SocketWrapperSocket.java:140)
> at
> org.mpisws.p2p.transport.util.SocketWrapperSocket.receiveSelectResult(SocketWrapperSocket.java:140)
> at
> org.mpisws.p2p.transport.util.SocketWrapperSocket.receiveSelectResult(SocketWrapperSocket.java:140)
> at org.mpisws.p2p.transport.wire.SocketManager.read(SocketManager.java:322)
> at rice.selector.SelectorManager.doSelections(SelectorManager.java:394)
> at rice.selector.SelectorManager.run(SelectorManager.java:255)
> Caused by: java.lang.ClassNotFoundException: rice.p2p.commonapi.Message
> at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
> ... 53 more
> :rice.environment.exception.simple:20080604.114300.755:handleException(Thread[Selector
> Thread -- Default,5,main]) java.lang.NoClassDefFoundError:
> rice/p2p/commonapi/Message
> at java.lang.ClassLoader.defineClass1(Native Method)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
> at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
> at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
> at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
> at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
> at
> org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.searchDynamicImports(R4SearchPolicyCore.java:597)
> at
> org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClassOrResource(R4SearchPolicyCore.java:475)
> at
> org.apache.felix.framework.searchpolicy.R4SearchPolicyCore.findClass(R4SearchPolicyCore.java:186)
> at
> org.apache.felix.framework.searchpolicy.R4SearchPolicy.findClass(R4SearchPolicy.java:45)
> at
> org.apache.felix.framework.searchpolicy.ContentClassLoader.loadClass(ContentClassLoader.java:109)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
> at java.lang.Class.forName0(Native Method)
> at java.lang.Class.forName(Class.java:247)
> at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:604)
> at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575)
> at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
> at
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
> at
> rice.pastry.messaging.JavaSerializedDeserializer.deserialize(JavaSerializedDeserializer.java:81)
> at
> rice.pastry.commonapi.PastryEndpointMessage.<init>(PastryEndpointMessage.java:158)
> at
> rice.pastry.commonapi.PastryEndpoint$PEDeserializer.deserialize(PastryEndpoint.java:77)
> at rice.pastry.routing.RouteMessage.unwrap(RouteMessage.java:529)
> at
> rice.pastry.commonapi.PastryEndpoint.receiveMessage(PastryEndpoint.java:553)
> at
> rice.pastry.standard.StandardRouter.deliverToApplication(StandardRouter.java:504)
> at
> rice.pastry.standard.StandardRouter.receiveRouteMessage(StandardRouter.java:263)
> at rice.pastry.standard.StandardRouter.route(StandardRouter.java:163)
> at
> rice.pastry.standard.StandardRouter.receiveMessage(StandardRouter.java:150)
> at
> rice.pastry.messaging.MessageDispatch.dispatchMessage(MessageDispatch.java:146)
> at rice.pastry.PastryNode.receiveMessage(PastryNode.java:468)
> at rice.pastry.PastryNode.messageReceived(PastryNode.java:1076)
> at rice.pastry.PastryNode.messageReceived(PastryNode.java:92)
> at
> org.mpisws.p2p.transport.commonapi.CommonAPITransportLayerImpl.messageReceived(CommonAPITransportLayerImpl.java:232)
> at
> org.mpisws.p2p.transport.commonapi.CommonAPITransportLayerImpl.messageReceived(CommonAPITransportLayerImpl.java:65)
> at
> org.mpisws.p2p.transport.identity.IdentityImpl$UpperIdentityImpl.messageReceived(IdentityImpl.java:1080)
> at
> org.mpisws.p2p.transport.priority.PriorityTransportLayerImpl$EntityManager$BufferReader.done(PriorityTransportLayerImpl.java:1251)
> at
> org.mpisws.p2p.transport.priority.PriorityTransportLayerImpl$EntityManager$BufferReader.receiveSelectResult(PriorityTransportLayerImpl.java:1215)
> at
> org.mpisws.p2p.transport.util.SocketWrapperSocket.receiveSelectResult(SocketWrapperSocket.java:140)
> at
> org.mpisws.p2p.transport.util.SocketWrapperSocket.receiveSelectResult(SocketWrapperSocket.java:140)
> at
> org.mpisws.p2p.transport.liveness.LivenessTransportLayerImpl$LSocket.receiveSelectResult(LivenessTransportLayerImpl.java:1088)
> at
> org.mpisws.p2p.transport.util.SocketWrapperSocket.receiveSelectResult(SocketWrapperSocket.java:140)
> at
> org.mpisws.p2p.transport.util.SocketWrapperSocket.receiveSelectResult(SocketWrapperSocket.java:140)
> at
> org.mpisws.p2p.transport.util.SocketWrapperSocket.receiveSelectResult(SocketWrapperSocket.java:140)
> at org.mpisws.p2p.transport.wire.SocketManager.read(SocketManager.java:322)
> at rice.selector.SelectorManager.doSelections(SelectorManager.java:394)
> at rice.selector.SelectorManager.run(SelectorManager.java:255)
> Caused by: java.lang.ClassNotFoundException: rice.p2p.commonapi.Message
> at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
> ... 53 more
>
> Can someone give me a hint to where to start to find the problem?
>
>
> Kind regards,
>
> Siamak
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.8 (MingW32)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
>
> iEYEARECAAYFAkhGaS0ACgkQBLvtewtTERMV3gCeIHdSxTbTd4D1rRs7bFNO7r/y
> JawAoIUxzmPjFYWp3mdsYAd8tKklMKOq
> =FoZD
> -----END PGP SIGNATURE-----
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
> For additional commands, e-mail: users-help@felix.apache.org
>
--
Karl Pauls
karlpauls@gmail.com
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
For additional commands, e-mail: users-help@felix.apache.org