当前位置: 技术问答>java相关
关于RMI的问题
来源: 互联网 发布时间:2015-01-06
本文导语: 诸位: 我是一名新手,调式JavaRMI的经典例子"Hello World"时,没有成功!所有源程序(一个远程接口、实现类(服务器)、一个Applet)均已编译通过,stub和skeleton文件都经编译生成,RmiRegistry也启动,但是运行服...
诸位:
我是一名新手,调式JavaRMI的经典例子"Hello World"时,没有成功!所有源程序(一个远程接口、实现类(服务器)、一个Applet)均已编译通过,stub和skeleton文件都经编译生成,RmiRegistry也启动,但是运行服务器程序时却没有成功,其中的一项错误提示是Access Denied,我估计是权限问题,语句是:
Java -Djava.rmi.server.codebase=http://anthony/ HelloImpl&
我不知道参数“-Djava.rmi.server.codebase=http://anthony/”的含义,我的开发环境是JDK1.3,工具为Jpad,WinNT4.0,我在看Jbuilder的开发例程时发现有一个“策略文件”(police),而且在运行服务器的程序时有一个参数
"-Djava.security.policy=...",由于这是两个不同版本的例子,我不知道这个参数的设置有什么关系?
我是一名新手,调式JavaRMI的经典例子"Hello World"时,没有成功!所有源程序(一个远程接口、实现类(服务器)、一个Applet)均已编译通过,stub和skeleton文件都经编译生成,RmiRegistry也启动,但是运行服务器程序时却没有成功,其中的一项错误提示是Access Denied,我估计是权限问题,语句是:
Java -Djava.rmi.server.codebase=http://anthony/ HelloImpl&
我不知道参数“-Djava.rmi.server.codebase=http://anthony/”的含义,我的开发环境是JDK1.3,工具为Jpad,WinNT4.0,我在看Jbuilder的开发例程时发现有一个“策略文件”(police),而且在运行服务器的程序时有一个参数
"-Djava.security.policy=...",由于这是两个不同版本的例子,我不知道这个参数的设置有什么关系?
|
你没有配置安全策略,如果你用的是JBUILDER,你需要编辑JBUILDERJAVAJRELIBSECURITYJAVA.POLICE 文件,用
写字板将其打开,加入如下一行:
permission java.net.SocketPermission "192.168.0.2:1099", "connect, resolve";
即可,配置策略文件有一个可视化工具,叫POLICYTOOL,在所有的JRE中都有,即在JDK和JBUILDER
中都有,记得在JBUILDER中运行程序,就编辑JBUILDERJAVAJRELIBSECURITYJAVA.POLICY 文件,如果用JDK,或JRE运行程序,就编辑相应目录下的JAVA.POLICY文件,好啦,GOOD LUCK!!:)
写字板将其打开,加入如下一行:
permission java.net.SocketPermission "192.168.0.2:1099", "connect, resolve";
即可,配置策略文件有一个可视化工具,叫POLICYTOOL,在所有的JRE中都有,即在JDK和JBUILDER
中都有,记得在JBUILDER中运行程序,就编辑JBUILDERJAVAJRELIBSECURITYJAVA.POLICY 文件,如果用JDK,或JRE运行程序,就编辑相应目录下的JAVA.POLICY文件,好啦,GOOD LUCK!!:)
|
"-Djava.security.policy=..." 是环境变量,可以指定自己的策略文件,比如为xxx.policy
可以模仿系统的策略文件修改,否则定义自己的策略文件(文本文件,格式去SUN看看)
如:你有一个RMI客户类为:myClient.class,并且自己定义的策略文件xxx.policy放在同一目录
先启动RMI服务器,然后运行Client:
java -Djava.security.policy=xxx.policy myClient就不会出现问题了(当然你的访问权限要在策略文件中配置好)
可以模仿系统的策略文件修改,否则定义自己的策略文件(文本文件,格式去SUN看看)
如:你有一个RMI客户类为:myClient.class,并且自己定义的策略文件xxx.policy放在同一目录
先启动RMI服务器,然后运行Client:
java -Djava.security.policy=xxx.policy myClient就不会出现问题了(当然你的访问权限要在策略文件中配置好)