2010-11-20 2 views
0

일부 코드는 Java EE 응용 프로그램 서버를 비롯한 다양한 환경에서 다시 사용할 수 있습니다. 때로는 코드가 응용 프로그램 서버에서 실행 중인지와 어떤 응용 프로그램 서버가 실행 중인지를 아는 것이 좋습니다.응용 프로그램이 응용 프로그램 서버에서 실행되고 있는지 확인

저는 응용 프로그램 서버의 전형적인 시스템 속성을 확인하여 선호합니다. 예를 들어 그것은 누군가가 다른 서버에 적합한 속성 이름을 알고 있나요

톰캣을위한 제이보스

  • catalina.base에 대한

    • jboss.server.name 될 수있다? Weblogic, Websphere, Oracle IAS 등?

      특정 응용 프로그램 서버가 설치되어 있는지 확인하는 것은 매우 쉽습니다. JSP, Servlet, EJB에 System.getProperties() 행을 추가하고 결과를 인쇄하십시오.

      직접 할 수는 있지만 서버를 설치하고 작동 시키려면 많은 시간이 필요합니다.

      이 나는이 토론 읽고 : How to determine type of Application Server an application is running on?

      을하지만 시스템 속성을 사용하는 것을 선호합니다. 그것은 쉽고 절대적으로 휴대용 솔루션입니다. 이 코드는 Servlet, EJBContext 또는 JMX와 같은 다른 API에 의존하지 않습니다.

  • 답변

    1

    이것은 '표준'방법은 아니지만 AppServer 클래스를로드하려고 시도한 것입니다.

    의 경우는 WAS :.

    시도 {
    클래스 CL = Thread.getContextClassLoader()로 loadClass ("com.ibm.websphere.runtime.ServerName");

    발견 //
    // 찾을 수 없습니다

    }
    캐치 (Throwable를) {

    }

    // 톰캣의 경우 : "org.apache.catalina.xxx"

    기타

    내가 무엇인지 알 수있게 해주세요.

    jboss.home.dir 
    jboss.server.name 
    

    당신은 예를 VisualVM과 또는 다른 도구에 대한 사용하여 다른 속성을 확인할 수 있습니다 잉크

    1

    보스 AS는 diffrent 시스템 속성을 많이 설정합니다.

    다른 서버는 모르지만 각 서버마다 몇 가지 속성을 찾을 수 있다고 생각합니다.

    관련 문제