嗨,我想从 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 对启动服务器没有用)。