如何以编程方式(java)获取JBoss信息并对其进行管理



嗨,我想从 java 类中获取 JBoss 上的信息,例如状态和版本,然后通过启动/停止/重新满足他来管理他。对于版本,我这样做:

String fileSeparator = System.getProperty("file.separator");
        String runJarFile = jbossHomeDir + fileSeparator + "bin" + fileSeparator + "run.jar";
        System.out.println("JBOSSDIR est :" + runJarFile);
        jarInputStream = new JarInputStream(new FileInputStream(runJarFile));
        System.out.println("Pigmalion" + jarInputStream.getNextEntry().getName());
        Manifest manifest = jarInputStream.getManifest();
        Attributes attributes = manifest.getMainAttributes();
        jbossVersion = attributes.getValue(Attributes.Name.SPECIFICATION_VERSION);

这工作正常,现在对于状态,我看到有些人通过检查端口来做到这一点,但是没有另一种方法吗?

至于启动/停止/重新启动命令,我看到了这个脚本

package com.sudipta.jboss.conf;
import org.jboss.Main;
public class JbossOperation {
    public static Main ob;
    static Class jbossMain;
    static{
        try {
            jbossMain=Class.forName("org.jboss.Main");
            ob = (Main)jbossMain.newInstance();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (InstantiationException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }
    }
/**
 * START JBOSS SERVER
 * @return true if started successfully
 */
public static boolean startServer(){
    boolean status=true;
    String str[]={"-c","default"};            
    try {
        ob.boot(str);
    } catch (Exception e) {            
        e.printStackTrace();
        return false;
    }        
    return status;
}
/**
 * STOP JBOSS SERVER
 * @return true if started successfully
 */
public static boolean stopServer(){
    boolean status=true;        
    try {
        ob.shutdown();            
    } catch (Throwable e) {            
        e.printStackTrace();
    }                
    return status;
}
/**
 * Main method
 * @param args
 */
public static void main(String args[]){
    System.out.println("---------------------Strating the server------------------");
    startServer();
    System.out.println("---------------------Stoping the server------------------");
    stopServer();
    System.out.println("---------------------SERVER STOPPED------------------");
}

}

我下载了 jboss-system 4.0.2 jar,它告诉我关闭方法不存在。我必须下载其他 jboss 罐子吗?

如果你正在寻找更有进取心的东西(但仍然是开源的)。您可能希望为此使用 RHQ。它允许在托管资源上运行操作,并且可以启动/重新启动/停止 JBoss 服务器,向其部署战争等等。但学习曲线可能相当陡峭。

您是否考虑过使用 JMX 控制台?此外,如果您确实需要从 Java 程序管理服务器,您可以编写一个 JMX 客户端来调用特定的服务器操作,例如关闭。此外,可以通过这种方式获取不同类型的服务器信息。(当然,JMX 对启动服务器没有用)。

最新更新