是否可以在我的机器上找到所有在JNDI注册的开放端口?
从Ubuntu中找到一些实用程序会很好,但Java代码也可以。
更新:在 JSP 的澄清之后,我修改了我的问题。
我将执行以下操作:
A. 解析您的应用程序服务器配置
- 例如,对于 Jboss AS 7.x 的独立配置,
您应该解析 Standalone/configuration/standalone.xml B. 从 XML 中读取 JNDI 配置,并理解应该使用哪些端口。
C. 使用
System.getRuntime().exec
为了调用 netstat -na ,
过滤掉那些存在于从 A 获得的列表中并且处于 ESTABLISHED 状态的端口。
我的解决方案的一些问题: A. 据我所知,根据 Java EE 规范,您不应该从 Java 企业应用程序执行进程。
为了克服这个问题,您可以让一些 j2se 应用程序作为服务运行,
与应用程序服务器通信。B. 我假设需要了解 JNDI 端口的服务器和代码存在于同一台机器上。
如果需要知道端口的代码应该在不同的机器上运行,您应该将此信息公开给客户端(即 - 通过 Web UI、REST 等...)