2009-11-17 8 views

Répondre

3

La chose la plus simple à laquelle je puisse penser est de regarder les propriétés du système au moment de l'exécution, car les deux serveurs vont presque certainement définir les leurs. Par exemple, JBoss 4 définit la propriété système jboss.server.dir. Vérifiez si cette propriété existe, et si c'est le cas, vous pouvez supposer que vous utilisez ce serveur. OC4J aura quelque chose de similaire.

Alternativement, essayez de charger de manière réfléchie une classe qui fait partie de l'infrastructure du serveur (par exemple org.jboss.Version dans JBoss 4). S'il existe, vous savez sur quel serveur vous êtes.

2

Vous pouvez trouver ceci par ServletContext#getServerInfo().

+1

Curieux ... Je pense que cela retournera le nom du conteneur de servlet, plutôt que le serveur de l'application, mais cela peut suffire. – skaffman

+0

Dépend du serveur d'applications. Par exemple, JBoss 4.2.x et les versions plus récentes renvoient "JBoss", mais les anciennes versions utilisaient "Apache Tomcat". – BalusC

0

Passer à System.getProperty("jboss.home.dir")

Questions connexes