2010-02-11 73 views
2

我們的EJB3應用程序可以運行在Oracle AS或JBoss AS之上。有沒有辦法在運行期間找出AS的類型?如何確定運行應用程序的Application Server的類型?

+0

複製的http://stackoverflow.com/questions/1745836/determine-which-application-server-our-application-is-deployed-to和http://stackoverflow.com/questions/2117704/如何確定-j2ee-應用程序服務器類型和版本 – skaffman 2010-02-11 14:24:42

+0

我們的應用程序不是一個web應用程序 – tputkonen 2010-02-11 14:31:45

+0

我沒有說它是。這些重複內容都不是特定於webapps的。 – skaffman 2010-02-11 14:34:06

回答

1

您可以在運行時使用反射來檢查對象的具體類型,例如,由應用程序注入的EJBContext。服務器。

+0

謝謝! 在jboss中它返回: org.jboss.ejb3.stateless.StatelessSessionContextImpl – tputkonen 2010-02-11 15:05:51

1

另一種方法是檢查系統屬性中的應用程序服務器特定值。

// EXAMPLE: 
if (System.getProperty("catalina.base") != null) { 
    // Using Tomcat 
    ... 
else if (System.getProperty("jboss.server.name") != null) { 
    // Using JBoss 
    ... 
else if (System.getProperty("was.install.root") != null) { 
    // Using WebSphere 
    ... 
相關問題