2017-08-30 26 views
0

JBoss-4.0.4.GAからwildfly-10.1.0.Finalにアプリケーションを移行しようとしています。私はJMXに問題があります。アプリケーションの起動時にjavax/management/MBeanServerでのローダー制約違反の問題

、私は次のように取得しています:

10:58:02,689 WARN [org.jboss.modules] (ServerService Thread Pool -- 90) Failed to define class javax.management.MBeanServer in Module "com.xor.genesis:main" from local module loader @1c2c22f3 (finder: local module finder @18e8568 (roots: /home/user/wildfly-10.1.0.Final/modules,/home/user/wildfly-10.1.0.Final/modules/system/layers/base)): java.lang.LinkageError: Failed to link javax/management/MBeanServer (Module "com.xor.genesis:main" from local module loader @1c2c22f3 (finder: local module finder @18e8568 (roots: /home/chaos1/wildfly-10.1.0.Final/modules,/home/chaos1/wildfly-10.1.0.Final/modules/system/layers/base))): loader constraint violation: loader (instance of org/jboss/modules/ModuleClassLoader) previously initiated loading for a different type with name "javax/management/MBeanServer" 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
    at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:446) 
    at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:274) 
    at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:78) 
    at org.jboss.modules.Module.loadModuleClass(Module.java:606) 
    at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190) 
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:363) 
    at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:351) 
    at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:93) 
    at com.xor.genesis.core.jmx.framework.ApplicationMBeanManager.registerMBean(ApplicationMBeanManager.java:37) 
    at com.xor.genesis.cgo.listeners.CGOApplicationListener.registerApplicationLogger(CGOApplicationListener.java:161) 
    at com.xor.genesis.cgo.listeners.CGOApplicationListener.initMBeans(CGOApplicationListener.java:112) 
    at com.xor.genesis.cgo.listeners.CGOApplicationListener.contextInitialized(CGOApplicationListener.java:59) 
    at io.undertow.servlet.core.ApplicationListeners.contextInitialized(ApplicationListeners.java:187) 
    at io.undertow.servlet.core.DeploymentManagerImpl$1.call(DeploymentManagerImpl.java:200) 
    at io.undertow.servlet.core.DeploymentManagerImpl$1.call(DeploymentManagerImpl.java:171) 
    at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:42) 
    at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43) 
    at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44) 
    at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44) 
    at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44) 
    at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44) 
    at io.undertow.servlet.api.LegacyThreadSetupActionWrapper$1.call(LegacyThreadSetupActionWrapper.java:44) 
    at io.undertow.servlet.core.DeploymentManagerImpl.deploy(DeploymentManagerImpl.java:234) 
    at org.wildfly.extension.undertow.deployment.UndertowDeploymentService.startContext(UndertowDeploymentService.java:100) 
    at org.wildfly.extension.undertow.deployment.UndertowDeploymentService$1.run(UndertowDeploymentService.java:82) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:748) 
    at org.jboss.threads.JBossThread.run(JBossThread.java:320) 

コードレベルで次の行より正確には、上記の例外を生産している:

MBeanServer server = java.lang.management.ManagementFactory.getPlatformMBeanServer(); 

I必要なjarのリストを含む独自のモジュールを作成しました。私はwildfly内のクライアントライブラリを変更しませんでした。

あなたはこの問題をどのように管理できますか?

おかげで、 アナ

+0

クラスパスのMBeanServer.classの存在重複に関連しているようです。 – chaos

答えて

0

これは、エラーメッセージの興味深い部分である:

ローダー制約違反:ローダ( ORG /のJBoss /モジュールのインスタンス/ ModuleClassLoader) ための以前に開始ローディング

にある別の型 "javax/management/MBeanServer"

根本的な問題については、hereを詳細に説明する。この記事は結論:2つの異なるクラスが相互作用 場合は簡単な言葉で

は、リンケージ・エラーが発生する可能性があり、この相互作用のクラスは、同じシンボル名ではなく、異なるクラスのオブジェクトと タイプを参照してください。

異なるクラスオブジェクトは、クラスがFQNで識別され、ロードされたクラスローダーによって識別されるため、クラスが異なるクラスローダーによってロードされるという事実に由来します。

クラスパス(Wildfly/JBossのmodulesディレクトリ、または配備内)にjavax/management/MBeanServerのインスタンスが複数存在しないことを確認してください。

関連する問題