0

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

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 jar 吗?

4

2 回答 2

0

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

于 2013-09-26T20:19:10.100 回答
0

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

于 2013-09-26T18:17:23.410 回答