有关RMI连接拒绝的问题

shrV 2013-05-19 01:16:21
Exception in thread "main" java.rmi.ConnectException: Connection refused to host: 192.168.1.153; nested exception is: 
java.net.ConnectException: Connection refused: connect
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:601)
at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:198)
at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:184)
at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:322)
at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source)
at java.rmi.Naming.rebind(Naming.java:160)
at rmi.compute.Bootstrap.main(Bootstrap.java:17)

这个问题是怎么产生的?
我的安全管理许可没有问题,我连接的是本机,
我的启动代码是这样的
if(System.getSecurityManager() == null){
System.setSecurityManager(new SecurityManager());
}
LocateRegistry.createRegistry(10990);
String name = "ComputeEngine";
ComputeEngine engine = new ComputeEngine();
System.out.println("ComputerEngine exported");
Naming.rebind(name, engine);
System.out.println("ComputeEngine bound");

假如,我在运行这个之前,先在cmd中运行rmiregistry就没有问题,我想问问,这是为什么?资料我找了很久都没有找到
...全文
695 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
Naming.rebind(name, engine);改为 Naming.rebind("rmi://192.168.1.153:10990/"+name, engine);
七神之光 2013-05-20
  • 打赏
  • 举报
回复
服务不允许啊
shrV 2013-05-20
  • 打赏
  • 举报
回复
我也还解答一下自己的问题,方便以后遇到相同问题的人:“假如,我在运行这个之前,先在cmd中运行rmiregistry就没有问题,我想问问,这是为什么?”,因为rmiregistry默认开启的是1099端口,所以当你Naming.rebind("ComputeEngine",engine)的时候,它启动了一个端口是1099的服务,这时,你省略前面的协议和路径部分是可以的。不过这时启动了两个服务,你没有用到自己代码注册的服务而已。
shrV 2013-05-20
  • 打赏
  • 举报
回复
引用 2 楼 fangmingshijie 的回复:
Naming.rebind(name, engine);改为 Naming.rebind("rmi://192.168.1.153:10990/"+name, engine);
你的是对的,thanks
无聊找乐 2013-05-20
  • 打赏
  • 举报
回复
如果你把 SecurityManager 去掉后 能访问的话我再回答。
fei1710 2013-05-20
  • 打赏
  • 举报
回复
默认端口是1099。

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧