[keycloak-user] Linkage Errors
Marek Posolda
mposolda at redhat.com
Wed Jun 25 03:19:28 EDT 2014
Hi,
I think the problem is in the fact that you are using:
compile 'org.keycloak:keycloak-core:1.0-beta-3'
because if you do this, then keycloak-core.jar (and maybe some other
files) is copied into your WAR under WEB-INF/lib, which is not good. You
shouldn't have keycloak and httpcomponent jars inside WEB-INF/lib, but
instead all your dependencies should be specified in
WEB-INF/jboss-deployment-structure.xml to reference dependencies
provided by Application server. Keycloak modules should be added as
modules into JBoss AS as specified in documentation.
I would suggest to look at our example applications here
https://github.com/keycloak/keycloak/tree/master/examples/demo-template/
(they are also part of distribution). For example if you look at
customer-app application, you can notice that it has all dependencies as
'provided' in pom.xml :
https://github.com/keycloak/keycloak/blob/master/examples/demo-template/customer-app/pom.xml#L32
and in jboss-deployment-structure it has dependency on httpcomponents,
which is something you will need as well (note ClassNotFoundException in
your stacktrace):
https://github.com/keycloak/keycloak/blob/master/examples/demo-template/customer-app/src/main/webapp/WEB-INF/jboss-deployment-structure.xml#L6
. Keycloak dependencies (like keycloak-core) don't need to be specified
in jboss-deployment-structure.xml as long as you install keycloak
modules and add jboss subsystem into standalone.xml as described in
Keycloak docs and in README of examples.
Good luck,
Marek
On 25.6.2014 08:24, Conrad Winchester wrote:
> Hi all,
>
> So, trying to get a keycloak enabled server out of Intellij and onto a
> UAT box is proving to be a bit of a nightmare :-(
>
> I am using the following dependencies for my project (removed some
> that are not part of the problem)
>
>
> dependencies {
>
> providedCompile 'org.jboss.spec:jboss-javaee-7.0:1.0.0.Final'
> providedCompile
> 'org.jboss.resteasy:resteasy-multipart-provider:3.0.6.Final'
> providedCompile
> 'org.jboss.resteasy:resteasy-jackson2-provider:3.0.6.Final'
>
> compile 'org.keycloak:keycloak-core:1.0-beta-3'
>
> }
>
> and I have my own version of the HttpClientBuilder utility class
> copied from the keycloak source in my application.
>
> When running inside IntelliJ everything works fine, however when I try
> to run my way standalone on a UAT server I am getting the following
> linkage error. When I don't include the keyclick core I don't get the
> error, but I need keycloak code for the KeycloakPrincipal class.
>
> I think it might be to do with conflicting versions of the
> org.apache.httpcomponents:httpclient library (4.2.1 vs 4.01), but am a
> little out of my depth. I have been struggling all night with this and
> would appreciate any help.
>
> Thanks
>
> Conrad
>
>
> 2014-06-25 07:05:16,047 INFO [org.jboss.weld.deployer] (MSC service
> thread 1-1) JBAS016005: Starting Services for CDI deployment:
> shift-server.war
> 2014-06-25 07:05:16,073 INFO [org.jboss.weld.Version] (MSC service
> thread 1-1) WELD-000900: 2.1.2 (Final)
> 2014-06-25 07:05:16,118 INFO [org.jboss.weld.deployer] (MSC service
> thread 1-4) JBAS016008: Starting weld service for deployment
> shift-server.war
> 2014-06-25 07:05:16,477 INFO [org.jboss.weld.Bootstrap]
> (weld-worker-1) WELD-000119: Not generating any bean definitions from
> com.shift.service.oauth.KeycloakAuthAdapter because of underlying
> class loading error: Type org.apache.http.HttpEntity from [Module
> "deployment.shift-server.war:main" from Service Module Loader] not
> found. If this is unexpected, enable DEBUG logging to see the full error.
> 2014-06-25 07:05:16,482 WARN [org.jboss.modules] (weld-worker-2)
> Failed to define class
> com.shift.keycloak.HttpClientBuilder$VerifierWrapper in Module
> "deployment.shift-server.war:main" from Service Module Loader:
> java.lang.LinkageError: Failed to link
> com/shift/keycloak/HttpClientBuilder$VerifierWrapper (Module
> "deployment.shift-server.war:main" from Service Module Loader)
> at
> org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:487)
> [jboss-modules.jar:1.3.3.Final]
> at
> org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:277)
> [jboss-modules.jar:1.3.3.Final]
> at
> org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:92)
> [jboss-modules.jar:1.3.3.Final]
> at org.jboss.modules.Module.loadModuleClass(Module.java:568)
> [jboss-modules.jar:1.3.3.Final]
> at
> org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:205)
> [jboss-modules.jar:1.3.3.Final]
> at
> org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:459)
> [jboss-modules.jar:1.3.3.Final]
> at
> org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:408)
> [jboss-modules.jar:1.3.3.Final]
> at
> org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:389)
> [jboss-modules.jar:1.3.3.Final]
> at
> org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:134)
> [jboss-modules.jar:1.3.3.Final]
> at java.lang.Class.getDeclaringClass0(Native Method) [rt.jar:1.8.0]
> at java.lang.Class.getDeclaringClass(Class.java:1222) [rt.jar:1.8.0]
> at java.lang.Class.getEnclosingClass(Class.java:1264) [rt.jar:1.8.0]
> at java.lang.Class.getSimpleBinaryName(Class.java:1430) [rt.jar:1.8.0]
> at java.lang.Class.isMemberClass(Class.java:1420) [rt.jar:1.8.0]
> at
> org.jboss.weld.util.reflection.Reflections.getNesting(Reflections.java:134)
> [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
> at
> org.jboss.weld.annotated.slim.backed.BackedAnnotatedConstructor.initParameters(BackedAnnotatedConstructor.java:50)
> [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
> at
> org.jboss.weld.annotated.slim.backed.BackedAnnotatedConstructor.initParameters(BackedAnnotatedConstructor.java:28)
> [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
> at
> org.jboss.weld.annotated.slim.backed.BackedAnnotatedCallable.<init>(BackedAnnotatedCallable.java:34)
> [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
> at
> org.jboss.weld.annotated.slim.backed.BackedAnnotatedConstructor.<init>(BackedAnnotatedConstructor.java:38)
> [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
> at
> org.jboss.weld.annotated.slim.backed.BackedAnnotatedConstructor.of(BackedAnnotatedConstructor.java:32)
> [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
> at
> org.jboss.weld.annotated.slim.backed.BackedAnnotatedType$BackedAnnotatedConstructors.computeValue(BackedAnnotatedType.java:165)
> [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
> at
> org.jboss.weld.annotated.slim.backed.BackedAnnotatedType$BackedAnnotatedConstructors.computeValue(BackedAnnotatedType.java:158)
> [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
> at org.jboss.weld.util.LazyValueHolder.get(LazyValueHolder.java:35)
> [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
> at
> org.jboss.weld.annotated.slim.backed.BackedAnnotatedType$EagerlyInitializedLazyValueHolder.<init>(BackedAnnotatedType.java:154)
> [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
> at
> org.jboss.weld.annotated.slim.backed.BackedAnnotatedType$BackedAnnotatedConstructors.<init>(BackedAnnotatedType.java:158)
> [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
> at
> org.jboss.weld.annotated.slim.backed.BackedAnnotatedType$BackedAnnotatedConstructors.<init>(BackedAnnotatedType.java:158)
> [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
> at
> org.jboss.weld.annotated.slim.backed.BackedAnnotatedType.<init>(BackedAnnotatedType.java:64)
> [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
> at
> org.jboss.weld.annotated.slim.backed.BackedAnnotatedType.of(BackedAnnotatedType.java:47)
> [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
> at
> org.jboss.weld.resources.ClassTransformer$TransformClassToBackedAnnotatedType.load(ClassTransformer.java:83)
> [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
> at
> org.jboss.weld.resources.ClassTransformer$TransformClassToBackedAnnotatedType.load(ClassTransformer.java:80)
> [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
> at
> com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3524)
> at
> com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2317)
> at
> com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2280)
> at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2195)
> at com.google.common.cache.LocalCache.get(LocalCache.java:3934)
> at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3938)
> at
> com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4821)
> at
> org.jboss.weld.util.cache.LoadingCacheUtils.getCacheValue(LoadingCacheUtils.java:52)
> [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
> at
> org.jboss.weld.util.cache.LoadingCacheUtils.getCastCacheValue(LoadingCacheUtils.java:80)
> [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
> at
> org.jboss.weld.resources.ClassTransformer.getBackedAnnotatedType(ClassTransformer.java:175)
> [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
> at
> org.jboss.weld.resources.ClassTransformer.getBackedAnnotatedType(ClassTransformer.java:194)
> [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
> at
> org.jboss.weld.bootstrap.BeanDeployer.loadAnnotatedType(BeanDeployer.java:119)
> [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
> at
> org.jboss.weld.bootstrap.BeanDeployer.addClass(BeanDeployer.java:96)
> [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
> at
> org.jboss.weld.bootstrap.ConcurrentBeanDeployer$1.doWork(ConcurrentBeanDeployer.java:62)
> [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
> at
> org.jboss.weld.bootstrap.ConcurrentBeanDeployer$1.doWork(ConcurrentBeanDeployer.java:60)
> [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
> at
> org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:60)
> [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
> at
> org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:53)
> [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
> at java.util.concurrent.FutureTask.run(FutureTask.java:266) [rt.jar:1.8.0]
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> [rt.jar:1.8.0]
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> [rt.jar:1.8.0]
> at java.lang.Thread.run(Thread.java:744) [rt.jar:1.8.0]
> Caused by: java.lang.NoClassDefFoundError:
> org/apache/http/conn/ssl/X509HostnameVerifier
> at java.lang.ClassLoader.defineClass1(Native Method) [rt.jar:1.8.0]
> at java.lang.ClassLoader.defineClass(ClassLoader.java:760) [rt.jar:1.8.0]
> at
> org.jboss.modules.ModuleClassLoader.doDefineOrLoadClass(ModuleClassLoader.java:361)
> [jboss-modules.jar:1.3.3.Final]
> at
> org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:482)
> [jboss-modules.jar:1.3.3.Final]
> ... 50 more
> Caused by: java.lang.ClassNotFoundException:
> org.apache.http.conn.ssl.X509HostnameVerifier from [Module
> "deployment.shift-server.war:main" from Service Module Loader]
> at
> org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:213)
> [jboss-modules.jar:1.3.3.Final]
> at
> org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:459)
> [jboss-modules.jar:1.3.3.Final]
> at
> org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:408)
> [jboss-modules.jar:1.3.3.Final]
> at
> org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:389)
> [jboss-modules.jar:1.3.3.Final]
> at
> org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:134)
> [jboss-modules.jar:1.3.3.Final]
> ... 54 more
>
> 2014-06-25 07:05:16,489 INFO [org.jboss.weld.Bootstrap]
> (weld-worker-2) WELD-000119: Not generating any bean definitions from
> com.shift.keycloak.HttpClientBuilder$PassthroughTrustManager because
> of underlying class loading error: Type
> org.apache.http.conn.ssl.X509HostnameVerifier from [Module
> "deployment.shift-server.war:main" from Service Module Loader] not
> found. If this is unexpected, enable DEBUG logging to see the full error.
> 2014-06-25 07:05:16,511 WARN [org.jboss.modules] (weld-worker-1)
> Failed to define class
> com.shift.keycloak.HttpClientBuilder$VerifierWrapper in Module
> "deployment.shift-server.war:main" from Service Module Loader:
> java.lang.LinkageError: Failed to link
> com/shift/keycloak/HttpClientBuilder$VerifierWrapper (Module
> "deployment.shift-server.war:main" from Service Module Loader)
> at
> org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:487)
> [jboss-modules.jar:1.3.3.Final]
> at
> org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:277)
> [jboss-modules.jar:1.3.3.Final]
> at
> org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:92)
> [jboss-modules.jar:1.3.3.Final]
> at org.jboss.modules.Module.loadModuleClass(Module.java:568)
> [jboss-modules.jar:1.3.3.Final]
> at
> org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:205)
> [jboss-modules.jar:1.3.3.Final]
> at
> org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:459)
> [jboss-modules.jar:1.3.3.Final]
> at
> org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:408)
> [jboss-modules.jar:1.3.3.Final]
> at
> org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:389)
> [jboss-modules.jar:1.3.3.Final]
> at
> org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:134)
> [jboss-modules.jar:1.3.3.Final]
> at
> org.jboss.as.weld.WeldModuleResourceLoader.classForName(WeldModuleResourceLoader.java:68)
> [wildfly-weld-8.1.0.Final.jar:8.1.0.Final]
> at
> org.jboss.weld.bootstrap.BeanDeployer.loadClass(BeanDeployer.java:106)
> [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
> at
> org.jboss.weld.bootstrap.BeanDeployer.addClass(BeanDeployer.java:94)
> [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
> at
> org.jboss.weld.bootstrap.ConcurrentBeanDeployer$1.doWork(ConcurrentBeanDeployer.java:62)
> [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
> at
> org.jboss.weld.bootstrap.ConcurrentBeanDeployer$1.doWork(ConcurrentBeanDeployer.java:60)
> [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
> at
> org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:60)
> [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
> at
> org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:53)
> [weld-core-impl-2.1.2.Final.jar:2014-01-09 09:23]
> at java.util.concurrent.FutureTask.run(FutureTask.java:266) [rt.jar:1.8.0]
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> [rt.jar:1.8.0]
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> [rt.jar:1.8.0]
> at java.lang.Thread.run(Thread.java:744) [rt.jar:1.8.0]
> Caused by: java.lang.NoClassDefFoundError:
> org/apache/http/conn/ssl/X509HostnameVerifier
> at java.lang.ClassLoader.defineClass1(Native Method) [rt.jar:1.8.0]
> at java.lang.ClassLoader.defineClass(ClassLoader.java:760) [rt.jar:1.8.0]
> at
> org.jboss.modules.ModuleClassLoader.doDefineOrLoadClass(ModuleClassLoader.java:361)
> [jboss-modules.jar:1.3.3.Final]
> at
> org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:482)
> [jboss-modules.jar:1.3.3.Final]
> ... 19 more
> Caused by: java.lang.ClassNotFoundException:
> org.apache.http.conn.ssl.X509HostnameVerifier from [Module
> "deployment.shift-server.war:main" from Service Module Loader]
> at
> org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:213)
> [jboss-modules.jar:1.3.3.Final]
> at
> org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:459)
> [jboss-modules.jar:1.3.3.Final]
> at
> org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:408)
> [jboss-modules.jar:1.3.3.Final]
> at
> org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:389)
> [jboss-modules.jar:1.3.3.Final]
> at
> org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:134)
> [jboss-modules.jar:1.3.3.Final]
> ... 23 more
>
> 2014-06-25 07:05:16,514 INFO [org.jboss.weld.Bootstrap]
> (weld-worker-1) WELD-000119: Not generating any bean definitions from
> com.shift.keycloak.HttpClientBuilder$VerifierWrapper because of
> underlying class loading error: Type
> org.apache.http.conn.ssl.X509HostnameVerifier from [Module
> "deployment.shift-server.war:main" from Service Module Loader] not
> found. If this is unexpected, enable DEBUG logging to see the full error.
> 2014-06-25 07:05:16,530 INFO [org.jboss.weld.Bootstrap]
> (weld-worker-2) WELD-000119: Not generating any bean definitions from
> com.shift.keycloak.HttpClientBuilder because of underlying class
> loading error: Type org.apache.http.conn.ssl.X509HostnameVerifier from
> [Module "deployment.shift-server.war:main" from Service Module Loader]
> not found. If this is unexpected, enable DEBUG logging to see the
> full error.
>
>
> I am getting a linkage error
>
>
> _______________________________________________
> keycloak-user mailing list
> keycloak-user at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/keycloak-user
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/keycloak-user/attachments/20140625/97b11b47/attachment-0001.html
More information about the keycloak-user
mailing list