不幸的是,我为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>
接下来我启动了我的服务器。不幸地部署了一个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
有什么想法吗?
答案 0 :(得分:2)
只需在META-INF/MANIFEST.MF
文件的主要部分添加一行,就可以更简单,更简洁地表达对自定义模块的依赖关系:
Dependencies: org.apache.shiro
有关详细信息,请参阅:https://docs.jboss.org/author/display/WFLY8/Class+Loading+in+WildFly
答案 1 :(得分:2)
虽然这已经得到了回答,但答案是正确的,但它遗漏了一个相关的解决方案:全球模块。
从上一个答案中的相同link,您还可以将其配置为全局模块,然后您不必更改MANIFEST.MF。当同一容器中的多个应用程序共享相同的依赖项时,我会使用它。