import java.rmi.Naming;
import java.rmi.RemoteException;
import java.net.MalformedURLException;
import java.rmi.NotBoundException; public class OutputnameClient { public static void main(String args[])
{
try{
Outputname c=(Outputname)Naming.lookup("rmi://192.168.1.77/OutputnameService");
System.out.println(c.print());
}catch(MalformedURLException murle){
System.out.println();
System.out.println("MalformedURLException");
System.out.println(murle);
}
catch (RemoteException re) {
System.out.println();
System.out.println("RemoteException");
System.out.println(re);
}
catch (NotBoundException nbe) {
System.out.println();
System.out.println("NotBoundException");
System.out.println(nbe);
}
catch (java.lang.ArithmeticException ae) {
System.out.println();
System.out.println("java.lang.ArithmeticException");
System.out.println(ae);
} }
}当执行到:
Outputname c=(Outputname)Naming.lookup("rmi://192.168.1.77/OutputnameService");
出现异常 :java.net.ConnectionException:Connection refused:connect
本地没问题
xp上的host文件在Windows/System32/driver/etc里,是个系统隐藏文件
连接拒绝~查看服务器配置~
程序正确完成后,还要做的事情:
1、rmic生成stub,虽然有的资料说jdk1.5后的不用,但我自己的经验是要,但是只生成stub,不生成skeleton。
2、要用policytool生成安全文件,保存到C:\Documents and Settings\administrator下,文件名为.java.policyno。很多资料上说添加到jre的lib\security\java.policyno下,我没成功过。....
3、客户端:System.setSecurityManager(new RMISecurityManager());
GuessTheCapitalServer guessTheCapitalServer = (GuessTheCapitalServer) Naming.lookup("//" + yourserverIp + "/GuessTheCapitalServer");如果没有.java.policyno,System.setSecurityManager(new RMISecurityManager())会报错。