2

残念ながら、JBoss7 (および WildFly8.0.0.Beta2) 用のモジュールを作成しようとして失敗し、自分が犯した間違いを確認できません。

1.) にディレクトリを作成<wf-root>/modules/org/apache/shiro/mainする

2.) ファイルshiro-core-1.2.2.jarをコピーし、shiro-ehcache-1.2.2.jarそのshiro-web-1.2.2.jar中に

3.)module.xml次の内容で呼び出されるファイルを作成します。

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="org.apache.shiro">  
    <resources>  
        <resource-root path="shiro-core-1.2.2.jar"/>  
        <resource-root path="shiro-ehcache-1.2.2.jar"/>  
        <resource-root path="shiro-web-1.2.2.jar"/>  
    </resources>
</module>

次に、サーバーを起動しました。残念ながら、shiro を必要とする EAR ファイルをデプロイすると、次のエラー (スニプレット) でデプロイに失敗しました。

Caused by: java.lang.NoClassDefFoundError: org/apache/shiro/mgt/SecurityManager
    at java.lang.ClassLoader.defineClass1(Native Method) [rt.jar:1.7.0_25]
    at java.lang.ClassLoader.defineClass(ClassLoader.java:792) [rt.jar:1.7.0_25]
    at org.jboss.modules.ModuleClassLoader.doDefineOrLoadClass(ModuleClassLoader.java:345) [jboss-modules.jar:1.3.0.Final]
    at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:423) [jboss-modules.jar:1.3.0.Final]
    ... 31 more

何か案は?

4

2 に答える 2

2

META-INF/MANIFEST.MFファイルのメイン セクションに次の 1 行を追加するだけで、カスタム モジュールへの依存関係をより簡単かつ簡潔に表現できます。

Dependencies: org.apache.shiro

詳細については、https ://docs.jboss.org/author/display/WFLY8/Class+Loading+in+WildFly を参照してください。

于 2014-02-14T01:23:27.303 に答える
2

これはすでに回答されており、回答は正しいですが、関連するソリューションであるグローバルモジュールが省略されています。

前の回答の同じリンクから、これをグローバル モジュールとして構成することもできます。そうすれば、MANIFEST.MF を変更する必要はありません。これは、同じコンテナー内の複数のアプリケーションが同じ依存関係を共有する場合に使用します。

于 2015-09-09T14:41:28.133 に答える