某些代碼可能會在各種環境(包括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。