This page contains an archived post to the Jini Forum made prior to February 25, 2002.
If you wish to participate in discussions, please visit the new
Artima Forums.
Message:
RemoteException while registering the Service
Posted by Megha on February 19, 2002 at 8:59 AM
HI i am able to connect ot the lookup service but when i try to register my service with the lookup, I get the following error: RemoteException while registering the Service java.rmi.MarshalException: error marshalling arguments; nested exception is: java.io.NotSerializableException: myown.Server1 I am using Jini version 1.2
and my code is: package myown; import myown.ServerInterface; import net.jini.core.discovery.LookupLocator; import net.jini.core.entry.Entry; import net.jini.core.lookup.ServiceRegistrar; import net.jini.core.lookup.ServiceItem; import net.jini.core.lookup.ServiceRegistration; import net.jini.core.lookup.ServiceID; import net.jini.core.lookup.ServiceTemplate; import net.jini.core.lease.Lease; import net.jini.core.lease.LeaseDeniedException; import net.jini.core.lease.UnknownLeaseException; import net.jini.discovery.LookupDiscovery; import net.jini.discovery.DiscoveryListener; import net.jini.discovery.DiscoveryEvent; import net.jini.lease.LeaseRenewalManager; import net.jini.lease.LeaseListener; import net.jini.lease.LeaseRenewalEvent; import net.jini.lookup.entry.ServiceInfo; //import com.sun.jini.lookup.entry.BasicServiceType; import java.rmi.RMISecurityManager; import java.rmi.RemoteException; import java.rmi.server.UnicastRemoteObject; import java.util.Properties; import java.util.StringTokenizer; import java.net.URL; import java.net.MalformedURLException; import java.io.File; import java.io.IOException; public class Server1 implements ServerInterface { private static final long LEASE_DUR = 500; // seconds private static ServerInterface thisClass; public int echoFnc(String test) { System.out.println("Message from the server"); return 0; } public static void main(String argv[]) { //An RMISecurityManager is set System.setSecurityManager(new RMISecurityManager()); System.out.println("\n1) Inside the main() will initiallize an instance of Server class\n"); try { LookupLocator lookup = new LookupLocator("jini://megha"); System.out.println("lookup found : " + lookup); ServiceRegistrar sr = lookup.getRegistrar(); System.out.println("registrar at lookup is = "+sr); String[] groups = sr.getGroups(); for(int i=0;i System.out.println("Group i is :" + groups[i]); System.out.println("Lookup service ID :" + sr.getServiceID().toString()); thisClass = new Server1(); System.out.println("\n3) thisClass instantiated \n"); System.out.println("\n To register the service...\n"); Object service = thisClass; /* Create a ServiceItem from the service instance */ ServiceItem srvcItem = new ServiceItem(null,service,null); /* Register the Service with the Lookup Service */ ServiceRegistration srvcRegistration = null; try{ System.out.println("registrar at lookup is = "+sr); srvcRegistration = sr.register(srvcItem,LEASE_DUR); System.out.println("Registered ServiceID: " +(srvcRegistration.getServiceID()).toString()); } catch (RemoteException e) { System.out.println("RemoteException while registering the " +"Service\n"+e.toString()); } } catch (Exception e) { System.out.println("RemoteException while exporting this object " +e.toString()); System.exit(-1); } }}
Replies:
|