微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何closures运行在特定端口上的rmiregistry?

我正在研究Java RMI。 我在端口2028上运行我的rmiregistry时遇到了一些小问题,因为我已经使用它来运行我的testing程序。 我可以使用其他端口来运行我的程序,但我想知道,我们如何closures在端口上运行的rmiregistry?

错误的ELF类:ELFCLASS32(可能的原因:架构字宽不匹配)

Java来控制Windows服务器

如何在Ubuntu上更新已经安装的IntelliJ IDEA?

jstack输出缺lesstid和nid信息

在控制面板中find图标的名称

如果你想在编程中做到这一点,我们做的事情如下:

// create the registry Registry rmiRegistry = LocateRegistry.createRegistry(port); ... // connect to it JMXConnectorserver connector = JMXConnectorserverFactory.newJMXConnectorserver(url,new HashMap<String,Object>(),ManagementFactory.getPlatformMBeanserver()); // do stuff with it ... // close the connection if (connector != null) { connector.stop(); } // deregister the registry if (rmiRegistry != null) { UnicastRemoteObject.unexportObject(rmiRegistry,true); }

这是我们的JMXserver类的完整代码 。 我们在创建其中的2个时遇到问题,并且完全取消注册,所以我们确保在不同的端口上运行我们的单元测试。

我在我的SimpleJmx JMX客户端/服务包中使用这个代码

经过这么多的麻烦,我突然意识到rmiregistry运行在shell的背景下。 所以我们必须先关闭它,然后把它放到前台,然后关闭它。 它的工作。

顺便把它带到前台只是键入:

% fg

然后关闭它类型:

Ctrl + c

而已。 非常感谢所有试图帮助我的人。

如果从shell运行rmiregistry,请尝试关闭它:

Process p = Runtime.getRuntime().exec("ps -ef | grep rmiregistry | awk '{ print $2 }' | kill -9");

我对shell命令并不是很新鲜,但是我希望你明白。

如果rmi注册表已经在使用该端口,并且您想要重新绑定服务而不使用其他端口。 你可以尝试下面的代码

Registry registry = null; try { registry = LocateRegistry.createRegistry(1099); } catch (ExportException ex) { registry = LocateRegistry.getRegistry(1099); } catch (remoteexception ex) { Logger.getLogger(server.class.getName()).log(Level.SEVERE,null,ex); }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐