Некоторые коды могут использоваться повторно в различных средах, включая сервер приложений Java EE. Иногда приятно знать, работает ли код под сервером приложений и какой сервер приложений это.Определите, что приложение запущено под сервером приложений
Я предпочитаю делать это, проверяя некоторые системные свойства, типичные для сервера приложений. Например, это может быть
jboss.server.name
для JBosscatalina.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.