Configuring Jax-RS Project using WildFly and PicketLink

I created a simple JEE leisure application using Jax-RS, and when searching for security implementations, I can use PicketLink, which looks really great. I was able to successfully deploy the authorization-rs-rbac example on my local Wildfly instance, after which I tried to integrate it into my own project, but I continue to receive class exceptions from WildFly for deployment.

My POM.xml Dependency Management:

<dependencyManagement>
    <dependencies>
        <!-- JBoss distributes a complete set of Java EE 6 APIs including a Bill 
            of Materials (BOM). A BOM specifies the versions of a "stack" (or a collection) 
            of artifacts. We use this here so that we always get the correct versions 
            of artifacts. Here we use the jboss-javaee-6.0-with-tools stack (you can 
            read this as the JBoss stack of the Java EE 6 APIs, with some extras tools 
            for your project, such as Arquillian for testing) and the jboss-javaee-6.0-with-hibernate 
            stack you can read this as the JBoss stack of the Java EE 6 APIs, with extras 
            from the Hibernate family of projects) -->
        <dependency>
            <groupId>org.jboss.bom</groupId>
            <artifactId>jboss-javaee-6.0-with-tools</artifactId>
            <version>${version.org.jboss.bom}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <dependency>
            <groupId>org.jboss.bom</groupId>
            <artifactId>jboss-javaee-6.0-with-hibernate</artifactId>
            <version>${version.org.jboss.bom}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>

        <dependency>
            <groupId>org.jboss.bom</groupId>
            <artifactId>jboss-javaee-6.0-with-security</artifactId>
            <version>${version.jboss.bom.eap}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>

        <dependency>
            <groupId>org.jboss.bom.wfk</groupId>
            <artifactId>jboss-javaee-6.0-with-deltaspike</artifactId>
            <version>2.4.0-redhat-1</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>

    </dependencies>
</dependencyManagement>

Also my Dependencies:

<!-- Import the PicketLink API, we deploy this as library with the application, 
        and can compile against it -->
    <dependency>
        <groupId>org.picketlink</groupId>
        <artifactId>picketlink-api</artifactId>
    </dependency>

    <!-- Import the PicketLink implementation, we deploy this as library with 
        the application, but can't compile against it -->
    <dependency>
        <groupId>org.picketlink</groupId>
        <artifactId>picketlink-impl</artifactId>
        <scope>runtime</scope>
    </dependency>

    <!-- Deltaspike API. We use compile scope as we need compile against its 
        API -->
    <dependency>
        <groupId>org.apache.deltaspike.core</groupId>
        <artifactId>deltaspike-core-api</artifactId>
        <scope>compile</scope>
    </dependency>

    <!-- Deltaspike Impl. we use runtime scope as we need its implementation 
        dependencies only on runtime -->
    <dependency>
        <groupId>org.apache.deltaspike.core</groupId>
        <artifactId>deltaspike-core-impl</artifactId>
        <scope>runtime</scope>
    </dependency>

    <!-- Deltaspike Security Module API. We use compile scope as we need to 
        compile against its API -->
    <dependency>
        <groupId>org.apache.deltaspike.modules</groupId>
        <artifactId>deltaspike-security-module-api</artifactId>
        <scope>compile</scope>
    </dependency>

    <!-- Deltaspike Security Impl. we use runtime scope as we need its implementation 
        dependencies only on runtime -->
    <dependency>
        <groupId>org.apache.deltaspike.modules</groupId>
        <artifactId>deltaspike-security-module-impl</artifactId>
        <scope>runtime</scope>
    </dependency>

I also defined an interceptor as shown in the above example

<interceptors>
    <class>org.apache.deltaspike.security.impl.extension.SecurityInterceptor</class>
</interceptors>

The error I get from the server:

17: 18: 22,470 [org.jboss.msc.service.fail] ( MSC 1-10) MSC000001: jboss.deployment.unit. "Project.war" .POST_MODULE: org. jboss.msc.service.StartException jboss.deployment.unit. "Project.war" . POST_MODULE: JBAS018733: POST_MODULE "Project.war"      org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:166) [wildfly-server-8.0.0.CR1.jar: 8.0.0.CR1]      org.jboss.msc.service.ServiceControllerImpl $StartTask.startService(ServiceControllerImpl.java:1948) [jboss-msc-1.2.0.CR1.jar: 1.2.0.CR1]      org.jboss.msc.service.ServiceControllerImpl $StartTask.run(ServiceControllerImpl.java:1881) [jboss-msc-1.2.0.CR1.jar: 1.2.0.CR1]      java.util.concurrent.ThreadPoolExecutor.runWorker( ) [rt.jar: 1.7.0_25]      java.util.concurrent.ThreadPoolExecutor $Worker.run( ) [rt.jar: 1.7.0_25]      java.lang.Thread.run( ) [rt.jar: 1.7.0_25] : java.lang.RuntimeException: JBAS018757: com.gr.project.authentication.IDMInitializer ClassLoader ModuleClassLoader "deployment.Project.war: main" Service Module Loader      org.jboss.as.server.deployment.reflect.DeploymentReflectionIndex.getClassIndex(DeploymentReflectionIndex.java:72) [wildfly-server-8.0.0.CR1.jar: 8.0.0.CR1]      org.jboss.as.ee.metadata.MethodAnnotationAggregator.runtimeAnnotationInformation(MethodAnnotationAggregator.java:58)      org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.handleAnnotations(InterceptorAnnotationProcessor.java:107)      org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.processComponentConfig(InterceptorAnnotationProcessor.java:92)      org.jboss.as.ee.component.deployers.InterceptorAnnotationProcessor.deploy(InterceptorAnnotationProcessor.java:77)      org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:159) [wildfly-server-8.0.0.CR1.jar: 8.0.0.CR1]     ... 5 : java.lang.NoClassDefFoundError: org/picketlink/idm/model/IdentityType      java.lang.Class.getDeclaredFields0 ( ) [rt.jar: 1.7.0_25]      java.lang.Class.privateGetDeclaredFields( ) [rt.jar: 1.7.0_25]      java.lang.Class.getDeclaredFields( ) [rt.jar: 1.7.0_25]      org.jboss.as.server.deployment.reflect.ClassReflectionIndex. (ClassReflectionIndex.java:57) [wildfly-server-8.0.0.CR1.jar: 8.0.0.CR1]      org.jboss.as.server.deployment.reflect.DeploymentReflectionIndex.getClassIndex(DeploymentReflectionIndex.java:68) [wildfly-server-8.0.0.CR1.jar: 8.0.0.CR1]     ... 10 : java.lang.ClassNotFoundException: org.picketlink.idm.model.IdentityType [Module "deployment.Project.war: main" ]      org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:197) [jboss-modules.jar: 1.3.0.Final]      org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:443) [jboss-modules.jar: 1.3.0.Final]      org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:431) [jboss-modules.jar: 1.3.0.Final]      org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:373) [jboss-modules.jar: 1.3.0.Final]      org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:118) [jboss-modules.jar: 1.3.0.Final]     ... 15 17: 18: 22,475 [org.jboss.as.controller.management-operation] (DeploymentScanner-threads - 2) JBAS014613: ( "" ): ([( "" = > "Project.war" )]) - : { "JBAS014671: Failed services" = > { "jboss.deployment.unit.\" Project.war \ ". POST_MODULE" = > "org.jboss.msc.service.StartException jboss.deployment.unit.\" Project.war \ ". POST_MODULE: JBAS018733: POST_MODULE \" Project.war \ "    : java.lang.RuntimeException: JBAS018757: com.gr.project.authentication.IDMInitializer ClassLoader ModuleClassLoader \" deployment.Project.war: main \ " Service Module Loader     : java.lang.NoClassDefFoundError: org/picketlink/idm/model/IdentityType     : java.lang.ClassNotFoundException: org.picketlink.idm.model.IdentityType [Module\" deployment.Project.war: main \ " Service Module Loader]" }} 17: 18: 22,511 INFO [org.jboss.as.server] (DeploymentScanner-threads - 2) JBAS018559: "Project.war" (runtime-name: "Project.war" ) 17: 18: 22,512 INFO [org.jboss.as.controller] (DeploymentScanner-threads - 2) JBAS014774: JBAS014777: , : service jboss.deployment.unit. "Project.war" .POST_MODULE: org.jboss.msc.service.StartException jboss.deployment.unit. "Project.war" .POST_MODULE: JBAS018733: POST_MODULE "Project.war"

, , , PicketLink .

- ?

+4

Source: https://habr.com/ru/post/1530277/


All Articles