使用 WildFly 10 的 Picketlink

Picketlink with WildFly 10

我正在尝试在我的 Java EE 7 应用程序中使用 PicketLink。到目前为止,项目编译没有错误。但是当我尝试在 WildFly 10 上部署应用程序时,它会停止并出现以下异常:

Caused by: java.lang.NoClassDefFoundError: org/picketlink/Identity

首先,我尝试将 Picketlink (picketlink-impl:2.5.5.SP2) 作为依赖项添加到我的耳中(在 lib 目录中)。但这给出了更多的例外,即所有内部纠察链接类,几个例外之一:

java.lang.NoClassDefFoundError: Failed to link org/picketlink/internal/AbstractIdentity (Module "..." from Service Module Loader): org/picketlink/Identity

我认为 Picketlink 已经作为一个模块部署在 WildFly 10 中。是否缺少激活 Picketlink 的任何配置?

将 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