确定我们的应用程序部署到哪个Application Server?

时间:2009-11-17 00:31:27

标签: java web-applications java-ee jboss oc4j

我们的J2EE应用程序部署到JBoss,有时部署到OC4J。  我可以知道正在使用哪一个吗?  我希望有一个方法在运行时返回容器信息。

4 个答案:

答案 0 :(得分:3)

我能想到的最简单的事情是在运行时查看系统属性,因为两个服务器几乎肯定会定义自己的。例如,JBoss 4定义了jboss.server.dir系统属性。检查该属性是否存在,如果存在,则可以假设您在该服务器下运行。 OC4J会有类似的东西。

或者,尝试反射性地加载属于服务器基础结构的类(例如,JBoss 4中的org.jboss.Version)。如果它存在,你就知道你在服务器上。

答案 1 :(得分:2)

您可以通过ServletContext#getServerInfo()找到这个。

答案 2 :(得分:0)

最有可能JMX是您需要使用的。两个容器都可能将自己的详细信息公开为MBean。这是一些Oracle documentation on JMXJBoss documentation

答案 3 :(得分:0)

更改为System.getProperty("jboss.home.dir")