当前位置: 代码迷 >> Java Web开发 >> RMI同一个局域网不同机子连接不上
  详细解决方案

RMI同一个局域网不同机子连接不上

热度:642   发布时间:2012-03-08 15:26:58.0
RMI同一个局域网不同机子连接不上
我用java写了一个RMI的服务程序和客户端程序,首先说明一下我的服务端程序和客户端程序是两个不同的项目,如果服务端程序和客户端程序在同一太电脑上访问是没有问题的,但是我把客户端程序拷贝到同一内网的其他机器上就不行了,Exception in thread "main" java.security.AccessControlException: access denied (java.net.SocketPermission 192.168.40.10:1099 connect,resolve)
说明:192.168.40.10是服务器的内网IP,请问这是什么原因
下面是我的服务器代码
import java.net.MalformedURLException;
import java.rmi.AlreadyBoundException;
import java.rmi.Naming;
import java.rmi.RMISecurityManager;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import java.rmi.server.RMISocketFactory;


public class RMIServer {

    /**
     * @param args
     * @throws AlreadyBoundException
     */
    public static void main(String[] args) throws RemoteException,MalformedURLException, AlreadyBoundException {
        // 不必再执行rmiregistry了   
        Registry r = LocateRegistry.getRegistry();   
        LocateRegistry.createRegistry(1099);
        HelloInterface hello = new Helloimpl();   
  
        // 注册服务   
        Naming.rebind("rmi://192.168.40.10/hello",hello);

    }

}

下面是客户端代码
    public static void main(String[] args) throws MalformedURLException,RemoteException,NotBoundException{
        System.setSecurityManager(new RMISecurityManager());
        HelloInterface hello = (HelloInterface) Naming.lookup("//192.168.40.10/hello");
        System.out.println(hello.sayHello());
    }
}

在客户端和服务器端都有_stub.class文件,在网上看到一些帖子说需要_stub.class和_Skel.class,_Skel.class是放在服务器端,_stub.class是放在客户端,但是很奇怪的是我的生成出来只有_stub.class而没有_Skel.class,后来又在网上看到一句话:
jdk1.5对rmi作了简化,只生成_stub.class。

_Skel.class是jdk1.4及以下版本才有的。

我用的是JDK1.6,如果是优化应该就是正常的撒,所以在客户端和服务器端都有_stub.class文件,还是不行,总不可能让我在装一个1.4的来生成一个_Skel.class吧.
在JDK和JRE的java.policy都加上了
    permission java.net.SocketPermission "*:1024-65535","connect,accept";
    permission java.security.AllPermission "", "";
现在我真的不知道是怎么回事了,如果有哪位大哥知道怎么解决这个错误,请及时告诉我
搜索更多相关主题的帖子: 客户端  服务器  thread  局域网  import  

----------------解决方案--------------------------------------------------------
  相关解决方案