1

耳 (myear.ear) アプリケーションを WildFly 9.0.2 にデプロイしています。ear にはear モジュールが含まれています。これを myjar.jar と呼びましょう。

また、外部のカスタムJBoss モジュールがあります。そのモジュール内から、myjar.jar 内にパッケージ化されたクラスを呼び出す必要があります (理由は気にしないでください)。

それも可能ですか?

JBoss モジュール module.xmlは次のようになります。

<module xmlns="urn:jboss:module:1.1" name="path.to.module.dir">
    <resources>
        <resource-root path="..."/>
    </resources>
    <dependencies>
        <module name="deployment.myear.ear.myjar.jar"  />
    </dependencies>
</module>

そのカスタム モジュールから ear にパッケージ化された jar をアドレス指定できる場合、モジュール名をどのように指定すればよいですか。上記により、次のエラーが発生します。

Caused by: org.jboss.modules.ModuleLoadError: deployment.myear.ear.myjar.jar:main
    at org.jboss.modules.ModuleLoadException.toError(ModuleLoadException.java:74)
    at org.jboss.modules.Module.getPathsUnchecked(Module.java:1384)
    at org.jboss.modules.Module.loadModuleClass(Module.java:555)
    at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:197)
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:455)
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:404)
    at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:385)
    at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:130)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
    at org.jboss.modules.ModuleClassLoader.doDefineOrLoadClass(ModuleClassLoader.java:353)
    at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:432)
    at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:269)
    at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:77)
    at org.jboss.modules.Module.loadModuleClass(Module.java:560)
    at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:197)
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:455)
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:404)
    at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:385)
    at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:130)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:264)
4

2 に答える 2

-1

ありえない。耳はモジュールにのみ依存でき、その逆はできません

于 2016-02-03T09:36:16.437 に答える