누구든지 프로그래밍 방식으로 JBossAS 5.1에서 서버 버전 번호를 얻는 방법을 알고 있습니까?JBoss AS 5.1에서 버전을 프로그래밍 방식으로 얻으려면 어떻게해야합니까?
JBossAS 4.2는 getMajor()
및 getMinor()
방법으로 org.jboss.Version
을 가졌지 만 이는 5.1에없는 것 같습니다.
누구든지 프로그래밍 방식으로 JBossAS 5.1에서 서버 버전 번호를 얻는 방법을 알고 있습니까?JBoss AS 5.1에서 버전을 프로그래밍 방식으로 얻으려면 어떻게해야합니까?
JBossAS 4.2는 getMajor()
및 getMinor()
방법으로 org.jboss.Version
을 가졌지 만 이는 5.1에없는 것 같습니다.
나는 그것이 무엇을하고 있었는지 볼 보스 4.2에서 Version
클래스를 디 컴파일, 그 결과는 최종 결과가 Properties
개체로 자원 /org/jboss/version.properties
를로드하는 것이었다 보스 5로 개조 할 수 있는지 선택 그런 다음 version.major
및 version.minor
속성을 읽습니다. 왜 그들이 단지 Version
클래스를 그곳에 두지 않을 수 있었는지 날 때린다.
버전 번호를 얻는 방법에는 여러 가지가 있습니다. 공식적인 방법은 자신의 Website에 설명 된대로 JMX를 사용하는 것입니다.하지만이 경우 앱 서버에 접근 할 수 있어야합니다. 요청할 MBean은 입니다. jboss.system : type = server. 당신은이에 대한 떨림 가량이 스크립트 외부 쉘을 사용할 수 있습니다
%JBOSS_HOME%\bin>twiddle get jboss.system:type=Server VersionNumber
VersionNumber=5.1.0.GA
을 그리고 여기에 자신의 웹 사이트에서 코드 스 니펫 (원격 JMX)입니다 :
MBeanServerConnection server = (MBeanServerConnection)new InitialContext().lookup("jmx/rmi/RMIAdaptor");
ObjectName on = new ObjectName("jboss.system:type=Server");
Object ver = server.getAttribute(on, "VersionNumber");
다른 변종의 패키지 정보를 사용 로드 된 클래스 org.jboss.Main과 같은 클래스를로드하면 JAR file spec에 지정된 구현 버전을 얻을 수 있습니다.
org.jboss.Main m=new Main(); //at least a jboss class loaded. not needed in the container
Package p=Package.getPackage("org.jboss");
System.out.println("Major=" + p.getImplementationVersion().split("\\.")[0]);
System.out.println("Minor=" + p.getImplementationVersion().split("\\.")[1]);
UPDATE : 패키지 검사로 추가 버전 번호 다음은 예이다. 결국
내가 원했던 것과 매우 비슷하지만 기존의 이유로 결합 된 문자열보다는 별개의 메이저 및 마이너 버전 번호가 필요합니다. – skaffman