java rmi与webservice_JAVA编写的webservice时。用到RMI。出现了以下问题,请高手赐教。谢谢。。...

我用java写了一个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 "", "";

现在我真的不知道是怎么回事了,如果有哪位大哥知道怎么解决这个错误,请及时告诉我

展开

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值