首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何关闭运行在特定端口上的rmiregistry?

如何关闭运行在特定端口上的rmiregistry?
EN

Stack Overflow用户
提问于 2011-12-05 21:24:36
回答 3查看 20.1K关注 0票数 8

我正在从事Java RMI的工作。我在端口2028上运行我的rmiregistry时遇到了一点问题,因为我已经使用这个端口运行了我的测试程序。我可以使用其他端口运行我的程序,但我想知道,如何关闭在特定端口上运行的rmiregistry?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-12-05 21:28:42

如果你想在编程中做到这一点,我们可以这样做:

代码语言:javascript
复制
// 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);
}

这是full code for our JMXServer class。我们在创建其中的两个并完全注销它们时遇到了问题,所以我们要确保在不同的端口上运行单元测试。

我在我的SimpleJmx JMX /service包中使用了这段代码。

票数 11
EN

Stack Overflow用户

发布于 2011-12-05 21:47:49

如果您正在从shell运行rmiregistry,请尝试使用以下命令关闭它:

代码语言:javascript
复制
Process p = 
Runtime.getRuntime().exec("ps -ef | grep rmiregistry | awk '{ print $2 }' | kill -9");

我对shell命令不是很熟悉,但我希望您能理解。

票数 1
EN

Stack Overflow用户

发布于 2014-04-10 21:14:04

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

代码语言:javascript
复制
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);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8386001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档