Adding an attribute to the javaspace05 service instance

Asaf Lahav <[email protected]> Wed, 9 Jul 2008 17:43:07 +0300
Newsgroups gmane.comp.java.sun.jini
Message-ID <[email protected]>
Hi All,

I would like to add additional Attributes to the javaspaces05 service
automatically from a remote client.

For that purpose, I created my own Entry implementation:

import java.util.Date;

import net.jini.entry.AbstractEntry;

public class MyEntry extends AbstractEntry {

      private static final long serialVersionUID = -3131394991217559764L;

      

      public String myName = null;

      public Date birthDate = null;

      public MyEntry() {

      }

}

 

The problem is that when I attempt to add this attribute to the service
(using the joinAdmin), I'm getting the following exception:

java.rmi.ServerException: RemoteException in server thread; nested exception
is: 

      java.rmi.UnmarshalException: unmarshalling method/arguments; nested
exception is: 

      java.lang.ClassNotFoundException:
infrastructure.jini.discovery.service.entries.MyEntry

      at
net.jini.jeri.BasicInvocationDispatcher.dispatch(BasicInvocationDispatcher.j
ava:644)

      at
com.sun.jini.jeri.internal.runtime.ObjectTable$6.run(ObjectTable.java:597)

      at
net.jini.export.ServerContext.doWithServerContext(ServerContext.java:103)

      at
com.sun.jini.jeri.internal.runtime.ObjectTable$Target.dispatch0(ObjectTable.
java:595)

      at
com.sun.jini.jeri.internal.runtime.ObjectTable$Target.access$700(ObjectTable
.java:212)

      at
com.sun.jini.jeri.internal.runtime.ObjectTable$5.run(ObjectTable.java:568)

      at
com.sun.jini.start.AggregatePolicyProvider$6.run(AggregatePolicyProvider.jav
a:527)

      at java.security.AccessController.doPrivileged(Native Method)

      at
com.sun.jini.jeri.internal.runtime.ObjectTable$Target.dispatch(ObjectTable.j
ava:565)

      at
com.sun.jini.jeri.internal.runtime.ObjectTable$Target.dispatch(ObjectTable.j
ava:540)

      at
com.sun.jini.jeri.internal.runtime.ObjectTable$RD.dispatch(ObjectTable.java:
778)

      at
net.jini.jeri.connection.ServerConnectionManager$Dispatcher.dispatch(ServerC
onnectionManager.java:148)

      at com.sun.jini.jeri.internal.mux.MuxServer$2.run(MuxServer.java:244)

      at
com.sun.jini.start.AggregatePolicyProvider$5.run(AggregatePolicyProvider.jav
a:513)

      at java.security.AccessController.doPrivileged(Native Method)

      at com.sun.jini.jeri.internal.mux.MuxServer$1.run(MuxServer.java:241)

      at com.sun.jini.thread.ThreadPool$Worker.run(ThreadPool.java:136)

      at java.lang.Thread.run(Thread.java:595)

      at
com.sun.jini.jeri.internal.runtime.Util.__________EXCEPTION_RECEIVED_FROM_SE
RVER__________(Util.java:108)

      at
com.sun.jini.jeri.internal.runtime.Util.exceptionReceivedFromServer(Util.jav
a:101)

      at
net.jini.jeri.BasicInvocationHandler.unmarshalThrow(BasicInvocationHandler.j
ava:1303)

      at
net.jini.jeri.BasicInvocationHandler.invokeRemoteMethodOnce(BasicInvocationH
andler.java:832)

      at
net.jini.jeri.BasicInvocationHandler.invokeRemoteMethod(BasicInvocationHandl
er.java:659)

      at
net.jini.jeri.BasicInvocationHandler.invoke(BasicInvocationHandler.java:528)

      at com.sun.jini.outrigger.$Proxy1.addLookupAttributes(Unknown Source)

      at
com.sun.jini.outrigger.AdminProxy.addLookupAttributes(AdminProxy.java:132)

      at
infrastructure.jini.discovery.RegistrarQueryHelper.addServiceFields(Registra
rQueryHelper.java:57)

      at
infrastructure.jini.discovery.activators.Activator.start(Activator.java:49)

      at
org.eclipse.osgi.framework.internal.core.BundleContextImpl$2.run(BundleConte
xtImpl.java:991)

      at java.security.AccessController.doPrivileged(Native Method)

      at
org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(Bu
ndleContextImpl.java:985)

      at
org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleConte
xtImpl.java:966)

      at
org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.j
ava:317)

      at
org.eclipse.osgi.framework.internal.core.AbstractBundle.resume(AbstractBundl
e.java:329)

      at
org.eclipse.osgi.framework.internal.core.Framework.resumeBundle(Framework.ja
va:1046)

      at
org.eclipse.osgi.framework.internal.core.StartLevelManager.resumeBundles(Sta
rtLevelManager.java:573)

      at
org.eclipse.osgi.framework.internal.core.StartLevelManager.incFWSL(StartLeve
lManager.java:495)

      at
org.eclipse.osgi.framework.internal.core.StartLevelManager.doSetStartLevel(S
tartLevelManager.java:275)

      at
org.eclipse.osgi.framework.internal.core.StartLevelManager.dispatchEvent(Sta
rtLevelManager.java:455)

      at
org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.
java:189)

      at
org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManage
r.java:291)

Caused by: java.rmi.UnmarshalException: unmarshalling method/arguments;
nested exception is: 

      java.lang.ClassNotFoundException:
infrastructure.jini.discovery.service.entries.MyEntry

      at
net.jini.jeri.BasicInvocationDispatcher.dispatch(BasicInvocationDispatcher.j
ava:619)

      at
com.sun.jini.jeri.internal.runtime.ObjectTable$6.run(ObjectTable.java:597)

      at
net.jini.export.ServerContext.doWithServerContext(ServerContext.java:103)

      at
com.sun.jini.jeri.internal.runtime.ObjectTable$Target.dispatch0(ObjectTable.
java:595)

      at
com.sun.jini.jeri.internal.runtime.ObjectTable$Target.access$700(ObjectTable
.java:212)

      at
com.sun.jini.jeri.internal.runtime.ObjectTable$5.run(ObjectTable.java:568)

      at
com.sun.jini.start.AggregatePolicyProvider$6.run(AggregatePolicyProvider.jav
a:527)

      at java.security.AccessController.doPrivileged(Native Method)

      at
com.sun.jini.jeri.internal.runtime.ObjectTable$Target.dispatch(ObjectTable.j
ava:565)

      at
com.sun.jini.jeri.internal.runtime.ObjectTable$Target.dispatch(ObjectTable.j
ava:540)

      at
com.sun.jini.jeri.internal.runtime.ObjectTable$RD.dispatch(ObjectTable.java:
778)

      at
net.jini.jeri.connection.ServerConnectionManager$Dispatcher.dispatch(ServerC
onnectionManager.java:148)

      at com.sun.jini.jeri.internal.mux.MuxServer$2.run(MuxServer.java:244)

      at
com.sun.jini.start.AggregatePolicyProvider$5.run(AggregatePolicyProvider.jav
a:513)

      at java.security.AccessController.doPrivileged(Native Method)

      at com.sun.jini.jeri.internal.mux.MuxServer$1.run(MuxServer.java:241)

      at com.sun.jini.thread.ThreadPool$Worker.run(ThreadPool.java:136)

      at java.lang.Thread.run(Thread.java:595)

Caused by: java.lang.ClassNotFoundException:
infrastructure.jini.discovery.service.entries.MyEntry

      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
net.jini.loader.pref.PreferredClassLoader.loadClass(PreferredClassLoader.jav
a:922)

      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:242)

      at
net.jini.loader.pref.PreferredClassProvider.loadClass(PreferredClassProvider
.java:613)

      at java.rmi.server.RMIClassLoader.loadClass(RMIClassLoader.java:247)

      at net.jini.loader.ClassLoading.loadClass(ClassLoading.java:138)

      at
net.jini.io.MarshalInputStream.resolveClass(MarshalInputStream.java:296)

      at
java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1538)

      at
java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1460)

      at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1693)

      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299)

      at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1628)

      at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1293)

      at java.io.ObjectInputStream.readObject(ObjectInputStream.java:339)

      at
com.sun.jini.jeri.internal.runtime.Util.unmarshalValue(Util.java:221)

      at
net.jini.jeri.BasicInvocationDispatcher.unmarshalArguments(BasicInvocationDi
spatcher.java:1049)

      at
net.jini.jeri.BasicInvocationDispatcher.dispatch(BasicInvocationDispatcher.j
ava:599)

      ... 17 more

 

 

Where should I place the jar with the class definition of MyEntry so that
the jini server would be able to get its definition (I'm not interested in
using the code download feature. I would rather install it somewhere on the
server statically)?

Thanks in advance,

Asaf

 


--------------------------------------------------------------------------
Getting Started:     http://www.jini.org/wiki/Category:Getting_Started
Community Web Site:  http://jini.org
jini-users Archive:  http://archives.java.sun.com/archives/jini-users.html
Unsubscribing:       email "signoff JINI-USERS"  to [email protected]