【发布时间】:2017-10-27 04:37:23
【问题描述】:
当我执行netstat -tupan 时,其中一个条目如下:
tcp 0 0 :::1099 :::* LISTEN 8778/java
但是,我已经从启动时传递给 Java 的选项中删除了有关 RMI 和 JMX 的所有设置。我的问题是:
- RMI 是否仍处于启用状态?我可以使用 telnet 连接到端口。
- 如果不是,为什么 Java 仍然监听端口?
编辑:我使用 netcat:nc -l 1099 阻止了端口。这提示应用程序启动时出错,原来我的应用程序中有一个MBean,它是Spring在启动时自动拾取并注册的。
【问题讨论】:
-
您是否尝试将您的 IP/端口放入黑洞,只是为了确保 RMI 是罪魁祸首
-
8778 PID 下是什么? stackoverflow.com/questions/821837/…
-
也许您可以停止您的应用程序,运行另一个侦听端口 1099 的应用程序。然后再次启动您的应用程序。
Address already in use错误应显示在日志文件中,并指示在端口 1099 上侦听的类。 -
会不会是Tomcat自己打开了端口? JMX 端口通常用于管理目的。我已经看到可以在某些端口上注册 JMX bean 的代码。如果没记错的话,1099 端口也可以用于 JNDI 服务。
-
@beckyang:你赢了,你的方法帮助我很快发现了问题。将其发布为答案,以便我可以分配赏金;-)