2

不幸的是,我为 JBoss7(和 WildFly8.0.0.Beta2)创建模块的尝试失败了,我看不到我犯的错误,我所做的是:

<wf-root>/modules/org/apache/shiro/main1.) 在,创建一个目录

2.)复制文件shiro-core-1.2.2.jarshiro-ehcache-1.2.2.jarshiro-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>

接下来我启动了我的服务器。不幸地部署 EAR 文件,这需要 shiro 部署失败,并出现以下错误(snipplet):

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

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 回答