关于rmi的问题???怪怪的.
myxd 2002-09-10 02:29:05 如果我在我的包含*.class的目录中启动rmiregistry,然后再启动的我的ProductServer不会出错。但是在其他目录启动rmiregistry后,在再包含*.class的目录中启动ProductServer出错。
Constructing server implements...
Binding server implements to registry...
Error:java.rmi.ServerException: RemoteException occurred in server thread; neste
d exception is:
java.rmi.UnmarshalException: error unmarshalling arguments; nested excep
tion is:
java.lang.ClassNotFoundException: ProductImpl_Stub
我的程序如下:
import java.rmi.*;
public interface Product extends Remote
{
public String getDescription() throws RemoteException;
}
import java.rmi.*;
import java.rmi.server.*;
public class ProductClient
{
public static void main(String args[])
{
System.setSecurityManager(new RMISecurityManager());
String url="rmi://localhost/";
try
{
Product c1=(Product)Naming.lookup(url+"toaster");
Product c2=(Product)Naming.lookup(url+"microwave");
System.out.println(c1.getDescription());
System.out.println(c2.getDescription());
}
catch(Exception e){System.out.println("Error:"+e);}
System.exit(0);
}
}
import java.rmi.*;
import java.rmi.server.*;
public class ProductImpl extends UnicastRemoteObject implements Product
{
public ProductImpl(String n) throws RemoteException
{
name=n;
}
public String getDescription() throws RemoteException
{
return "I am a "+name+". Buy me!";
}
private String name;
}
import java.rmi.*;
import java.rmi.server.*;
import sun.applet.*;
public class ProductServer
{
public static void main(String args[])
{
try
{
System.out.println("Constructing server implements...");
ProductImpl p1=new ProductImpl("Blackwell Toaster");
ProductImpl p2=new ProductImpl("ZapXpress Microwave Oven");
System.out.println("Binding server implements to registry...");
Naming.rebind("toaster",p1);
Naming.rebind("microwave",p2);
System.out.println("Waiting for invocations from clients...");
}catch(Exception e){System.out.println("Error:"+e);}
}
}