2011-05-30 68 views
2

我在Solaris 10服務器上的twiddle腳本有問題。 我必須閱讀一些屬性,例如jboss.system等。 根據JBoss服務器上的所有屬性都很好,但是當我嘗試 從java.lang讀取屬性時,會出現以下錯誤:JBoss JMX twiddle運行時間未註冊

javax.management.InstanceNotFoundException: java.lang:type=Runtime is not registered. 

回答

3

的問題是,的java.lang:類型=運行平臺MBeanServer已註冊MBean,默認情況下,twiddle會將您連接到JBoss MBeanServer,默認情況下,它們不會註冊RuntimeMXBean服務器。

假設您只想訪問系統屬性,解決此問題的最簡單方法是指向JBoss MBean jboss:name=SystemProperties,type=Service。該MBean暴露:

String get(String key) 
String get(String key, String default) 

或檢索所有值,

Map shopwAll() 

其他比較費力的解決辦法inlcude:

  • 註冊平臺MBeanServer的MXBean在JBoss MBeanServer中。看到這個Question
  • 在JVM中啓用管理代理並使用JMX連接器連接到Platform MBeanServer。請參閱Question
  • 使用Attach API通過進程ID連接到JBoss服務器的平臺MBeanServer。然後您可以引用MXRuntime MBean。