2

I am trying to use PicketLink in my Java EE 7 application. So far the projects compile without errors. But when I try to deploy the application on WildFly 10 it stops with following exception:

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

First I have tried to add Picketlink (picketlink-impl:2.5.5.SP2) as a dependency to my ear (in lib directory). But this gives quite more exceptions, namely for all internal picketlink classes, one of several exceptions:

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

I thought that Picketlink is already deployed in WildFly 10 as a module. Is there any configuration I am missing to activate Picketlink?

Georg Leber
  • 3,470
  • 5
  • 40
  • 63

1 Answers1

3

Add picketlink module dependency to your jboss-deployment-structure.xml file:

<jboss-deployment-structure>
    <deployment>
        <dependencies>
            <module name="org.picketlink"/>
        </dependencies>
    </deployment>
</jboss-deployment-structure>

If you don't have this file it should be placed in META-INF (or WEB-INF for web deployments).

EDIT:

It should be placed in the top level deployment. See https://docs.jboss.org/author/display/AS7/Class+Loading+in+AS7

Anton Tupy
  • 951
  • 5
  • 16
  • I have a EAR with two ejb JARs and a WAR. Where to put it exactly? Every subproject references Picketlink classes. – Georg Leber Jan 26 '18 at 14:56