某些代码可能会在各种环境(包括Java EE应用程序服务器)中重用。有时候很高兴知道代码是否在应用程序服务器上运行,以及它是哪个应用程序服务器。确定应用程序在应用程序服务器下运行
我更喜欢通过检查应用程序服务器的典型系统属性来执行此操作。 例如,它可能是
jboss.server.name
JBoss的catalina.base
为Tomcat
是否有人知道其他服务器的相应属性的名称? Weblogic,Websphere,Oracle IAS,其他?
检查是否安装了特定的应用程序服务器非常容易。只需将行 System.getProperties()添加到任何JSP,Servlet,EJB并打印结果。
我可以自己做,但它会花费很多时间来安装服务器,并使其工作。
我已阅读讨论:How to determine type of Application Server an application is running on?
但我更喜欢使用系统属性。这是更简单,绝对便携的解决方案。代码不依赖于任何其他API,如Servlet,EJBContext或JMX。