在碼頭的start.ini
啓用JMX將允許您使用類似的代碼如下:
final MBeanServer mBeanServerConnection = ManagementFactory.getPlatformMBeanServer();
final String[] portAttribute = new String[] {"port"};
// Jetty 9 MBeans
final ObjectName webappcontext9 = new ObjectName("org.eclipse.jetty.webapp:context=*,type=webappcontext,id=*");
final Set<ObjectName> webappcontexts9 = mBeanServerConnection.queryNames(webappcontext9, null);
for (final ObjectName objectName : webappcontexts9) {
System.out.println(objectName.getKeyProperty("context"));
}
final ObjectName serverconnector9 = new ObjectName("org.eclipse.jetty.server:context=*,type=serverconnector,id=*");
final Set<ObjectName> serverconnectors9 = mBeanServerConnection.queryNames(serverconnector9, null);
for (final ObjectName objectName : serverconnectors9) {
System.out.println("listening port for " + objectName.getCanonicalName() + " is " + mBeanServerConnection.getAttributes(objectName, portAttribute).asList().get(0).getValue());
}
// Jetty 8 and 7 MBeans
final ObjectName webappcontext8 = new ObjectName("org.eclipse.jetty.webapp:type=webappcontext,id=*,name=*");
final Set<ObjectName> webappcontexts8 = mBeanServerConnection.queryNames(webappcontext8, null);
for (final ObjectName objectName : webappcontexts8) {
System.out.println(objectName.getKeyProperty("name"));
}
final ObjectName serverconnector8 = new ObjectName("org.eclipse.jetty.server.nio:type=selectchannelconnector,id=*");
final Set<ObjectName> serverconnectors8 = mBeanServerConnection.queryNames(serverconnector8, null);
for (final ObjectName objectName : serverconnectors8) {
System.out.println("listening port for " + objectName.getCanonicalName() + " is " + mBeanServerConnection.getAttributes(objectName, portAttribute).asList().get(0).getValue());
}
當然,你需要配置碼頭裝載包含此代碼最後的Web應用程序或它贏得」獲取加載的其他Web應用程序的完整列表。
來源
2014-02-13 22:28:42
laz
好的,這個軟件應該得到賞金,但我知道應該有一種方法可以通過命名和目錄界面而不是通過JMX來獲取所有這些。 – msangel