Java 列出使用JMX或JNDI从Jboss进行的所有部署
有没有办法获得JBoss6.0上所有部署的列表Java 列出使用JMX或JNDI从Jboss进行的所有部署,java,jboss,jndi,jmx,Java,Jboss,Jndi,Jmx,有没有办法获得JBoss6.0上所有部署的列表 在Wildfly 9.0.1上使用JMX(ServerMBean)或JNDI?在Java中实现。最终代码如下所示: String host = "localhost"; int port = 9990; String urlString = System.getProperty("jmx.service.url","service:jmx:http-remoting-jmx://" + host + ":" + port);
在Wildfly 9.0.1上使用JMX(ServerMBean)或JNDI?在Java中实现。最终代码如下所示:
String host = "localhost";
int port = 9990;
String urlString = System.getProperty("jmx.service.url","service:jmx:http-remoting-jmx://" + host + ":" + port);
JMXServiceURL serviceURL = new JMXServiceURL(urlString);
JMXConnector jmxConnector = JMXConnectorFactory.connect(serviceURL, null);
MBeanServerConnection connection = jmxConnector.getMBeanServerConnection();
ObjectName name = new ObjectName("jboss.modules:type=ModuleLoader,name=*");
Set<ObjectInstance> objectInstances = connection.queryMBeans(name, null);
for (ObjectInstance objectInstance : objectInstances) {
if (objectInstance.getObjectName().getCanonicalName().contains("ServiceModuleLoader")) {
System.out.println("invoking method on " + objectInstance.getObjectName());
Object dumpAllModuleInformation = connection.invoke(objectInstance.getObjectName(), "dumpAllModuleInformation", new Object[]{}, new String[]{});
System.out.println(dumpAllModuleInformation);
}
}
jmxConnector.close();
在Wildfly 9.0.1.Final上,代码如下所示:
String host = "localhost";
int port = 9990;
String urlString = System.getProperty("jmx.service.url","service:jmx:http-remoting-jmx://" + host + ":" + port);
JMXServiceURL serviceURL = new JMXServiceURL(urlString);
JMXConnector jmxConnector = JMXConnectorFactory.connect(serviceURL, null);
MBeanServerConnection connection = jmxConnector.getMBeanServerConnection();
ObjectName name = new ObjectName("jboss.modules:type=ModuleLoader,name=*");
Set<ObjectInstance> objectInstances = connection.queryMBeans(name, null);
for (ObjectInstance objectInstance : objectInstances) {
if (objectInstance.getObjectName().getCanonicalName().contains("ServiceModuleLoader")) {
System.out.println("invoking method on " + objectInstance.getObjectName());
Object dumpAllModuleInformation = connection.invoke(objectInstance.getObjectName(), "dumpAllModuleInformation", new Object[]{}, new String[]{});
System.out.println(dumpAllModuleInformation);
}
}
jmxConnector.close();
使用
jconsole
如果您发现有一个返回部署的操作->是的,有一种方法可以通过JMX获得它,否则没有。使用jboss cli
获取此类信息如何?我需要用java编写此代码,但是我无法确定ObjectName或生成的Bean类是什么,这可能是Set mBeans=ManagementFactory.getPlatformMBeanServer().queryMBeans(新的ObjectName(“org.jboss.admin:type=Application,name=*”),null);对于(ObjectInstance ObjectInstance:mBeans){services.add(JMX.newMXBeanProxy(server,ObjectInstance.getObjectName(),ApplicationMXBean.class));}
我需要的是一个jar列表,war和ear文件已部署。如果您发现有返回部署的操作,请使用jconsole
->是,有办法通过JMX获取,否则不行。使用jboss cli
获取此类信息如何?我需要用java编写代码,但是我无法确定ObjectName或生成的Bean类是什么,这可能是Set mBeans=ManagementFactory.getPlatformMBeanServer().queryMBeans(新的ObjectName(“org.jboss.admin:type=Application,name=*”),null);对于(ObjectInstance ObjectInstance:mBeans){services.add(JMX.newMXBeanProxy(server,ObjectInstance.getObjectName(),ApplicationMXBean.class));}
我需要的是部署的jar、war和ear文件的列表。