我们的 J2EE 应用程序部署到 JBoss,有时部署到 OC4J。我可以知道使用的是哪一个吗?我希望有一种方法可以在运行时返回容器信息。
问问题
3188 次
4 回答
3
我能想到的最简单的事情是在运行时查看系统属性,因为几乎可以肯定两台服务器都会定义自己的。例如,JBoss 4 定义了jboss.server.dir
系统属性。检查该属性是否存在,如果存在,那么您可以假设您正在该服务器下运行。OC4J 会有类似的东西。
或者,尝试反射性地加载属于服务器基础结构的类(例如org.jboss.Version
在 JBoss 4 中)。如果存在,您就知道您在哪个服务器上。
于 2009-11-17T08:25:45.563 回答
2
您可以通过 找到这一点ServletContext#getServerInfo()
。
于 2009-11-17T11:23:52.273 回答
0
JMX很可能是您需要使用的。两个容器都可能将有关它们自己的详细信息公开为 MBean。这是一些关于 JMX和JBoss 文档的 Oracle 文档。
于 2009-11-17T00:34:53.633 回答
0
改成System.getProperty("jboss.home.dir")
于 2017-07-29T17:59:18.327 回答