codetoad.com
  ASP Shopping CartForum & BBS
  - all for $20 from CodeToad Plus!
  
  Home || ASP | ASP.Net | C++/C# | DHTML | HTML | Java | Javascript | Perl | VB | XML || CodeToad Plus! || Forums || RAM 
Search Site:
Search Forums:
  RMI server problem  gosi at 14:27 on Tuesday, May 02, 2006
 

I have a problem binding to a RMI registry on localhost. The problems appears to be when the driver tries to bind the server to the registry.

The following exception appears:

Server exception: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.lang.ClassNotFoundException: obli_opgave.CustomerContainer
java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.lang.ClassNotFoundException: obli_opgave.CustomerContainer
at sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:385)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:240)
at sun.rmi.transport.Transport$1.run(Transport.java:153)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701)
at java.lang.Thread.run(Thread.java:595)
at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(Unknown Source)
at sun.rmi.transport.StreamRemoteCall.executeCall(Unknown Source)
at sun.rmi.server.UnicastRef.invoke(Unknown Source)
at sun.rmi.registry.RegistryImpl_Stub.bind(Unknown Source)
at obli_opgave.ServerDriver.main(ServerDriver.java:25)
Caused by: java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.lang.ClassNotFoundException: obli_opgave.CustomerContainer
at sun.rmi.registry.RegistryImpl_Skel.dispatch(Unknown Source)
at sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:375)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:240)
at sun.rmi.transport.Transport$1.run(Transport.java:153)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.ClassNotFoundException: obli_opgave.CustomerContainer
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 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 sun.rmi.server.LoaderHandler.loadProxyInterfaces(LoaderHandler.java:707)
at sun.rmi.server.LoaderHandler.loadProxyClass(LoaderHandler.java:651)
at sun.rmi.server.LoaderHandler.loadProxyClass(LoaderHandler.java:588)
at java.rmi.server.RMIClassLoader$2.loadProxyClass(RMIClassLoader.java:628)
at java.rmi.server.RMIClassLoader.loadProxyClass(RMIClassLoader.java:294)
at sun.rmi.server.MarshalInputStream.resolveProxyClass(MarshalInputStream.java:238)
at java.io.ObjectInputStream.readProxyDesc(ObjectInputStream.java:1494)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1457)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1693)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:339)
... 9 more


and here is the code for server driver:

import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import java.rmi.server.UnicastRemoteObject;

public class ServerDriver
{

/**
* @param args
*/
public static void main(String[] args)

{
try
{
CustomerContainer cc = new CustomerContainerImpl();

CustomerContainer stub = (CustomerContainer) UnicastRemoteObject.exportObject(cc, 0);

// Bind the remote object's stub in the registry
Registry registry = LocateRegistry.getRegistry();

registry.bind("cust_con", stub);
System.err.println("Server ready");

}

catch (Exception e)
{
System.err.println("Server exception: " + e.toString());
e.printStackTrace();
}

}

}


here is the server code:

import java.util.ArrayList;
import java.rmi.*;
import java.rmi.registry.Registry;
import java.rmi.registry.LocateRegistry;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;

import javax.swing.JOptionPane;

public class CustomerContainerImpl implements CustomerContainer
{
ArrayList <Customer> customerList = new ArrayList();
int number = 0;

public int createCust (String name) throws RemoteException
{

int id = customerList.size();
String number ="";

try
{
Customer cust = new CustomerImpl (name,id);
customerList.add(cust);


Customer stub = (Customer) UnicastRemoteObject.exportObject(cust, 0);

number = id + "";
// Bind the remote object's stub in the registry
Registry registry = LocateRegistry.getRegistry();
registry.bind(number, stub);
}


catch (Exception e)
{
System.err.println("Server exception: " + e.toString());
e.printStackTrace();
}
JOptionPane.showMessageDialog(null,customerList.get(id).getName(), "INFO", JOptionPane.INFORMATION_MESSAGE);


return id;
}

public int findCustID (String name) throws RemoteException
{
int num = -1;
String theName = name;
for (int i =0; i<customerList.size(); i++)
{
Customer cust = (Customer) customerList.get(i);
if (cust.getName().compareToIgnoreCase(theName)==0)
num = i;
}
return num;
}
//beskriv i rapporten problemer med flere personer med samme navn.

public int calcTotalCredits() throws RemoteException
{
int totalCredit = 0;
for (int i=0; i<customerList.size(); i++)
{
Customer cust = (Customer) customerList.get(i);
totalCredit += cust.getCredits();
}
return totalCredit;
}

}









CodeToad Experts

Can't find the answer?
Our Site experts are answering questions for free in the CodeToad forums
//








Recent Forum Threads
•  TK - MainWindow: how to disable the system buttons (minimize, maximize, close) ?
•  Re: java app auto web update..
•  Re: Please can someone show me how to make a java box pop upand display personal information!
•  Beginners question on building Bento4 SDK
•  Scrolling Images
•  Does anyone know to create or implement a diary into Java??
•  jslider - paint track
•  Re: convert minutes into hours and minutes
•  File handle problem


Recent Articles
ASP GetTempName
Decode and Encode UTF-8
ASP GetFile
ASP FolderExists
ASP FileExists
ASP OpenTextFile
ASP FilesystemObject
ASP CreateFolder
ASP CreateTextFile
Javascript Get Selected Text


© Copyright codetoad.com 2001-2007