这个rmi程序为何在一台机器上就行,但两台就不行了呢?
RemoteInterface.java:
public interface RemoteInterface extends java.rmi.Remote
{
String message(String message) throws
java.rmi.RemoteException;
}
RemoteObject.java:
import java.rmi.Naming;
import java.rmi.server.UnicastRemoteObject;
import java.rmi.RemoteException;
public class RemoteObject extends UnicastRemoteObject implements RemoteInterface
{
String name;
public RemoteObject(String name) throws RemoteException
{
super();
this.name=name;
}
public String message(String message) throws RemoteException
{
String returnString="My Name is:"+name+",thanks for your message:"+message;
System.out.println("Returning :"+returnString);
return "My Name is:"+name+",thanks for your message:"+message;
}
public static void main(String args[ ])
{
try{
String myName="ServerTest";
RemoteObject theServer = new RemoteObject(myName);
Naming.rebind(myName, theServer);
System.out.println("Ready to Continue");
}
catch (Exception e)
{
System.out.println("An Exception occurred while creating server");
}
}
}
import java.rmi.Naming;
public class RemoteClient
{
public static void main(String args[]){
try{
System.out.println("Here to start rmi connection");
RemoteInterface server = (RemoteInterface)Naming.lookup("ServerTest");
System.out.println("connection complete");
String serverString = server.message("Hello There");
System.out.println("The server says:\n" + serverString);
}catch(Exception e){
System.out.println("Error while performing RMI");
}
}
}
在RemoteObject机器上打
start rmiregistry
java RemoteObject
输出Ready to Continue
在RemoteClient上打
java RemoteClient
输出Here to start rmi connection
Error while performing RMI
注:我rmic 过了RemoteObject 生成了存根文件并放在RemoteClient里了
但在一台机器上没有问题,这是为什么啊????多谢解答!!!!
问题点数:50、回复次数:8Top
1 楼zhutouzip(醒了的鸟)回复于 2005-04-01 13:43:15 得分 0
你应该这样绑定试试:Naming.rebind(ip+myName, theServer);
也就是指定另外一台机子的ip试试!
查询时也指定ip地址!Top
2 楼alexsando(alex)回复于 2005-04-01 15:33:22 得分 0
但我也试过了用rmi://192.168.1.134/ServerTest
然后打java RemoteClient 192.168.1.134也没有用阿!!!
到底我错那了呢???Top
3 楼alexsando(alex)回复于 2005-04-01 15:35:09 得分 0
还有rmi://192.168.1.134:1099/ServerTest也没用!Top
4 楼DanielYWoo(绿色毒汁)回复于 2005-04-01 15:49:16 得分 0
有什么异常?stacktrace贴上?Top
5 楼lydong(西瓜水)回复于 2005-04-01 16:18:10 得分 50
hosts文件中加入机器名映射Top
6 楼alexsando(alex)回复于 2005-04-01 21:53:46 得分 0
什么叫hosts文件中加入机器名映射?不懂啊.
Top
7 楼lydong(西瓜水)回复于 2005-04-04 17:26:58 得分 0
windows目录/system32/drivers/etc/hosts
加入:ip 机器名
192.168.1.134 pcnameTop
8 楼alexsando(alex)回复于 2005-04-12 13:00:34 得分 0
已经搞定了,jdk1.5的问题好像,用1.4就没有问题的,不解,但还是要谢谢大家的帮助!!!!Top




