Java开发网 |
注册 |
登录 |
帮助 |
搜索 |
排行榜 |
发帖统计
|
您没有登录 |
» Java开发网 » Java EE 综合讨论区
打印话题 寄给朋友 订阅主题 |
作者 | re: RMI and port 1099 |
sothis
CJSDN高级会员 发贴: 168 积分: 60 |
于 2003-01-17 15:59
本文回答 http://www.chinajavaworld.net/forum/topic.cgi?forum=33&topic=270&show=0 Java RMI缺省使用1099端口作为rmiregistry的工作端口,这样,只要程序(无论是服务器端还是客户端)是通过rmiregistry去发布或消费服务,就必须透过1099端口和外界联系(缺省)。 所以当新手们碰到 Error:java.security.AccessControlException: access denied(java.net.SockerPermission 127.0.0.1:1099 connect,resolve) 异常的时候,往往不知道到底是什回事,因为程序里面是没有表明有这样的一个端口被使用的。出现这个异常表明运行服务器或客户程序时权限配置有问题。 要知道对于RMI的C/S之间通信,就像Applet和WebServer之间通信一样,是要受Java的安全沙箱模型约束的。缺省情况下客户端和服务器端的代码没有权限存取硬盘/访问网络等等,这些权限必须在启动客户端和服务器端程序的时候加进去。 通过书写一个policy文件,我们可以指定安全策略,如 grant codebase "file:d:/jdk/test/rmi/server" { permission java.net.SocketPermission "127.0.0.1","accept,connect,listen,resolve"; }; 上面的策略表明从d:/jdk/test/rmi/server目录下面启动起来的java类可以在本机上任意操纵网络。注意windows上的程序员容易使用错误的\分隔符来代替/分隔符造成问题。 假定该文件名为RmiHelloServer.policy,那么启动客户端和服务器端程序的时候应该如下 java -Djava.security.policy=RmiHelloServer.policy RmiHelloServer
sothis edited on 2003-02-21 17:57
天狼星 Hibernate开发指南 |
话题树型展开 |
人气 | 标题 | 作者 | 字数 | 发贴时间 |
9045 | re: RMI and port 1099 | sothis | 888 | 2003-01-17 15:59 |
已读帖子 新的帖子 被删除的帖子 |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |