Reputation: 85
I have problem http-handler: org.jboss.resteasy.skeleton.key.as7.OAuthAuthenticationServerValve in Wildfly 10.0
I setup simple authentication application wiht form-based authentication to test/init implementation of oauth 2.0.
For some reason, I keep getting NoClassDefFoundError while deploying my app, despite, module with skeleton-key is installed.
Here's error from wildlfy server.log:
18:08:11,049 INFO [org.jboss.as.server.deployment] (MSC service thread 1-1) WFLYSRV0027: Starting deployment of "im-oauth-auth-1.0.war" (runtime-name: "im-oauth-auth-1.0.war")
18:08:11,447 WARN [org.jboss.modules] (MSC service thread 1-8) Failed to define class org.jboss.resteasy.skeleton.key.as7.OAuthAuthenticationServerValve in Module "org.jboss.resteasy.skeleton-key:main" from local module loader @33e5ccce (finder: local module finder @5a42bbf4 (roots: /media/data/im_jboss/wildfly/wildfly-10.0.0.Final/modules,/media/data/im_jboss/wildfly/wildfly-10.0.0.Final/modules/system/layers/base)): java.lang.NoClassDefFoundError: Failed to link org/jboss/resteasy/skeleton/key/as7/OAuthAuthenticationServerValve (Module "org.jboss.resteasy.skeleton-key:main" from local module loader @33e5ccce (finder: local module finder @5a42bbf4 (roots: /media/data/im_jboss/wildfly/wildfly-10.0.0.Final/modules,/media/data/im_jboss/wildfly/wildfly-10.0.0.Final/modules/system/layers/base))): org/apache/catalina/LifecycleListener
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:446)
at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:274)
at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:78)
at org.jboss.modules.Module.loadModuleClass(Module.java:605)
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:363)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:351)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:93)
at org.wildfly.extension.undertow.deployment.UndertowHandlersDeploymentProcessor.handleJbossWebXml(UndertowHandlersDeploymentProcessor.java:94)
at org.wildfly.extension.undertow.deployment.UndertowHandlersDeploymentProcessor.deploy(UndertowHandlersDeploymentProcessor.java:70)
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:147)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
18:08:11,449 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-8) MSC000001: Failed to start service jboss.deployment.unit."im-oauth-auth-1.0.war".POST_MODULE: org.jboss.msc.service.StartException in service jboss.deployment.unit."im-oauth-auth-1.0.war".POST_MODULE: WFLYSRV0153: Failed to process phase POST_MODULE of deployment "im-oauth-auth-1.0.war"
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:154)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NoClassDefFoundError: Failed to link org/jboss/resteasy/skeleton/key/as7/OAuthAuthenticationServerValve (Module "org.jboss.resteasy.skeleton-key:main" from local module loader @33e5ccce (finder: local module finder @5a42bbf4 (roots: /media/data/im_jboss/wildfly/wildfly-10.0.0.Final/modules,/media/data/im_jboss/wildfly/wildfly-10.0.0.Final/modules/system/layers/base))): org/apache/catalina/LifecycleListener
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:446)
at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:274)
at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:78)
at org.jboss.modules.Module.loadModuleClass(Module.java:605)
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:363)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:351)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:93)
at org.wildfly.extension.undertow.deployment.UndertowHandlersDeploymentProcessor.handleJbossWebXml(UndertowHandlersDeploymentProcessor.java:94)
at org.wildfly.extension.undertow.deployment.UndertowHandlersDeploymentProcessor.deploy(UndertowHandlersDeploymentProcessor.java:70)
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:147)
... 5 more
18:08:11,450 ERROR [org.jboss.as.controller.management-operation] (management-handler-thread - 6) WFLYCTL0013: Operation ("deploy") failed - address: ({"deployment" => "im-oauth-auth-1.0.war"}) - failure description: {"WFLYCTL0080: Failed services" => {"jboss.deployment.unit.\"im-oauth-auth-1.0.war\".POST_MODULE" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"im-oauth-auth-1.0.war\".POST_MODULE: WFLYSRV0153: Failed to process phase POST_MODULE of deployment \"im-oauth-auth-1.0.war\"
Caused by: java.lang.NoClassDefFoundError: Failed to link org/jboss/resteasy/skeleton/key/as7/OAuthAuthenticationServerValve (Module \"org.jboss.resteasy.skeleton-key:main\" from local module loader @33e5ccce (finder: local module finder @5a42bbf4 (roots: /media/data/im_jboss/wildfly/wildfly-10.0.0.Final/modules,/media/data/im_jboss/wildfly/wildfly-10.0.0.Final/modules/system/layers/base))): org/apache/catalina/LifecycleListener"}}
18:08:11,451 ERROR [org.jboss.as.server] (management-handler-thread - 6) WFLYSRV0021: Deploy of deployment "im-oauth-auth-1.0.war" was rolled back with the following failure message:
{"WFLYCTL0080: Failed services" => {"jboss.deployment.unit.\"im-oauth-auth-1.0.war\".POST_MODULE" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"im-oauth-auth-1.0.war\".POST_MODULE: WFLYSRV0153: Failed to process phase POST_MODULE of deployment \"im-oauth-auth-1.0.war\"
Caused by: java.lang.NoClassDefFoundError: Failed to link org/jboss/resteasy/skeleton/key/as7/OAuthAuthenticationServerValve (Module \"org.jboss.resteasy.skeleton-key:main\" from local module loader @33e5ccce (finder: local module finder @5a42bbf4 (roots: /media/data/im_jboss/wildfly/wildfly-10.0.0.Final/modules,/media/data/im_jboss/wildfly/wildfly-10.0.0.Final/modules/system/layers/base))): org/apache/catalina/LifecycleListener"}}
18:08:11,459 INFO [org.jboss.as.server.deployment] (MSC service thread 1-5) WFLYSRV0028: Stopped deployment im-oauth-auth-1.0.war
here's my jboss-web.xml content:
<jboss-web>
<security-domain>java:/jaas/commerce</security-domain>
<http-handler>
<class-name>org.jboss.resteasy.skeleton.key.as7.OAuthAuthenticationServerValve</class-name>
<module>org.jboss.resteasy.skeleton-key</module>
</http-handler>
</jboss-web>
here's jboss-deployment-structure.xml
<deployment>
<dependencies>
<!--
<module name="org.jboss.resteasy.resteasy-jaxrs" services="import"/>
<module name="org.jboss.resteasy.resteasy-jackson-provider" services="import"/> -->
<module name="org.jboss.resteasy.skeleton-key"/>
</dependencies>
</deployment>
Here's content of {wildfly-10.0.0.Final}/modules/system/layers/base/org/jboss/resteasy/
drwxr-xr-x 44 ordo ordo 4096 sty 29 23:12 ../
drwxr-xr-x 3 ordo ordo 4096 maj 8 17:44 jose-jwt/
drwxr-xr-x 3 ordo ordo 4096 maj 8 17:44 resteasy-atom-provider/
drwxr-xr-x 3 ordo ordo 4096 maj 8 17:44 resteasy-cdi/
drwxr-xr-x 3 ordo ordo 4096 maj 8 17:44 resteasy-crypto/
drwxr-xr-x 3 ordo ordo 4096 maj 8 17:44 resteasy-jackson2-provider/
drwxr-xr-x 3 ordo ordo 4096 maj 8 17:44 resteasy-jackson-provider/
drwxr-xr-x 3 ordo ordo 4096 maj 8 17:44 resteasy-jaxb-provider/
drwxr-xr-x 3 ordo ordo 4096 maj 8 17:44 resteasy-jaxrs/
drwxr-xr-x 3 ordo ordo 4096 maj 8 17:44 resteasy-jettison-provider/
drwxr-xr-x 3 ordo ordo 4096 maj 8 17:44 resteasy-jsapi/
drwxr-xr-x 3 ordo ordo 4096 maj 8 17:44 resteasy-json-p-provider/
drwxr-xr-x 3 ordo ordo 4096 maj 8 17:44 resteasy-multipart-provider/
drwxr-xr-x 3 ordo ordo 4096 maj 8 17:44 resteasy-spring/
drwxr-xr-x 3 ordo ordo 4096 maj 8 17:44 resteasy-validator-provider-11/
drwxr-xr-x 3 ordo ordo 4096 maj 8 17:44 resteasy-yaml-provider/
drwxr-xr-x 3 ordo ordo 4096 maj 8 17:44 skeleton-key/
Any help would be super! Thanks in advance!
edit:
as requested, I'm adding content of skeleton-key dir:
wildfly-10.0.0.Final/modules/system/layers/base/org/jboss/resteasy/skeleton-key/main$ ll
total 120
drwxr-xr-x 2 ordo ordo 4096 maj 11 09:59 ./
drwxr-xr-x 3 ordo ordo 4096 maj 11 09:59 ../
-rw-r--r-- 1 ordo ordo 2323 maj 11 09:59 module.xml
-rw-r--r-- 1 ordo ordo 53934 maj 11 09:59 skeleton-key-as7-3.0.16.Final.jar
-rw-r--r-- 1 ordo ordo 52383 maj 11 09:59 skeleton-key-core-3.0.16.Final.jar
And content of module.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ JBoss, Home of Professional Open Source.
~ Copyright 2010, Red Hat, Inc., and individual contributors
~ as indicated by the @author tags. See the copyright.txt file in the
~ distribution for a full listing of individual contributors.
~
~ This is free software; you can redistribute it and/or modify it
~ under the terms of the GNU Lesser General Public License as
~ published by the Free Software Foundation; either version 2.1 of
~ the License, or (at your option) any later version.
~
~ This software is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
~ Lesser General Public License for more details.
~
~ You should have received a copy of the GNU Lesser General Public
~ License along with this software; if not, write to the Free
~ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
~ 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-->
<module xmlns="urn:jboss:module:1.1" name="org.jboss.resteasy.skeleton-key">
<resources>
<resource-root path="skeleton-key-as7-3.0.16.Final.jar"/>
<resource-root path="skeleton-key-core-3.0.16.Final.jar"/>
<!-- Insert resources here -->
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.servlet.api"/>
<module name="javax.security.auth.message.api"/>
<module name="javax.security.jacc.api"/>
<module name="org.jboss.as.web"/>
<module name="javax.ws.rs.api"/>
<module name="org.picketbox"/>
<module name="org.codehaus.jackson.jackson-core-asl"/>
<module name="org.codehaus.jackson.jackson-jaxrs"/>
<module name="org.codehaus.jackson.jackson-mapper-asl"/>
<module name="org.codehaus.jackson.jackson-xc"/>
<module name="org.jboss.resteasy.resteasy-jackson-provider" services="import"/>
<module name="org.jboss.resteasy.resteasy-jaxrs" services="import"/>
<module name="org.jboss.logging"/>
<module name="org.jboss.resteasy.jose-jwt"/>
<module name="org.bouncycastle"/>
</dependencies>
</module>
Upvotes: 1
Views: 15042
Reputation: 78
I think that I've found the solution.
Add file jboss-deployment-structure.xml
With this content:
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<deployment>
<exclusions>
<module name="org.jboss.resteasy.skeleton-key" />
</exclusions>
</deployment>
</jboss-deployment-structure>
Last step, add this jar to your project.
Upvotes: 0
Reputation: 85
Looks like skeleton-key module is not ported to undertow, which is default in wildfly 10 which I'm using.
Upvotes: 1