2

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

引起:java.lang.NoClassDefFoundError: org/picketlink/Identity

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

java.lang.NoClassDefFoundError:无法链接 org/picketlink/internal/AbstractIdentity(来自服务模块加载器的模块“...”):org/picketlink/Identity

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

4

1 回答 1

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

于 2018-01-26T14:47:52.610 回答