代码之家  ›  专栏  ›  技术社区  ›  skaffman

如何在jboss中以编程方式获得5.1版本?

  •  3
  • skaffman  · 技术社区  · 16 年前

    有人知道如何在jbossas 5.1下以编程方式获取服务器版本号吗?

    JBassas 4.2 org.jboss.Version getMajor() getMinor() 方法,但这似乎不存在于5.1中。

    2 回复  |  直到 16 年前
        1
  •  4
  •   srikanth rongali    16 年前

    有几种方法可以获得版本号。我认为官方的方法是使用JMX,正如他们的 Website ,但为此,AppServer必须可访问。要问的MBean是 jboss.system:type=server .您甚至可以为此使用外部shell skrit twiddle:

    %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]);
    

    更新 :通过包装检查增加版本号。

        2
  •  0
  •   skaffman    16 年前

    最后我选择了反编译 Version 从jboss 4.2中类来查看它在做什么,并查看结果是否可以被改装到jboss 5中。最终结果是加载资源 /org/jboss/version.properties 变成 Properties 对象,然后读取 version.major version.minor 属性。我不明白为什么他们不能离开 版本 在那里上课,但你去了。