我正在尝试在Java EE 7应用程序中使用PicketLink。到目前为止,项目编译没有错误。但是当我尝试在WildFly 10上部署应用程序时,它会停止并出现以下异常:
引起:java.lang.NoClassDefFoundError:org / picketlink / Identity
首先,我尝试将Picketlink(picketlink-impl:2.5.5.SP2)作为依赖项添加到我的耳中(在lib目录中)。但是这给出了更多例外,即所有内部picketlink类,例外之一:
java.lang.NoClassDefFoundError:无法链接org / picketlink / internal / AbstractIdentity(来自服务模块加载器的模块“...”):org / picketlink / Identity
我认为Picketlink已作为模块部署在WildFly 10中。我是否缺少激活Picketlink的配置?
答案 0 :(得分:2)
将picketlink模块依赖项添加到jboss-deployment-structure.xml文件中:
<jboss-deployment-structure>
<deployment>
<dependencies>
<module name="org.picketlink"/>
</dependencies>
</deployment>
</jboss-deployment-structure>
如果您没有此文件,则应将其放在META-INF(或用于Web部署的WEB-INF)中。
修改强>
它应该放在顶级部署中。见https://docs.jboss.org/author/display/AS7/Class+Loading+in+AS7