2010-02-11 6 views
2

Notre application EJB3 peut être exécutée sur Oracle AS ou JBoss AS. Existe-t-il un moyen de connaître le type d'AS pendant l'exécution?Comment déterminer le type de serveur d'applications sur lequel une application s'exécute?

+0

en double de http://stackoverflow.com/questions/1745836/determine-which-application-server-our-application-is-deployed-to et http://stackoverflow.com/questions/2117704/ how-can-i-déterminer-the-j2ee-application-server-type-et-version – skaffman

+0

Notre application n'est pas une application web – tputkonen

+0

Je n'ai pas dit que c'était. Aucun de ces doublons n'est spécifique aux webapps. – skaffman

Répondre

1

Vous pouvez vérifier le type de béton de l'objet lors de l'exécution en utilisant la réflexion, par ex. le EJBContext qui est injecté par l'application. serveur.

+0

Merci! En jboss retourne: org.jboss.ejb3.stateless.StatelessSessionContextImpl – tputkonen

1

Une autre méthode consiste à rechercher une valeur spécifique au serveur d'applications dans les propriétés système.

// 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 
    ...