您好我想从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,它告诉我shutdown方法不存在。我必须下载其他jboss罐吗?
答案 0 :(得分:0)
如果您正在寻找更有进取心的东西(但仍然是开源的)。您可能希望使用RHQ。它允许在托管资源上运行操作,它可以启动/重启/停止JBoss服务器,为它部署战争等等。但学习曲线可能非常陡峭。
答案 1 :(得分:0)
您是否考虑过使用JMX控制台?此外,如果您确实需要从Java程序管理服务器,您可以编写一个JMX客户端来调用特定的服务器操作,如shutdown。另外,可以通过这种方式获得不同种类的服务器信息。 (当然JMX对启动服务器没用)。