使用Jboss AS7和Resteasy运行默认的Skeleton Key示例,我已完全遵循这些指示:https://github.com/resteasy/Resteasy/tree/master/jaxrs/examples/oauth2-as7-example但仍然在部署时出错:
14:35:10,453 ERROR [org.apache.catalina.core.StandardContext](MSC 服务线程1-11)上下文[/ customer-portal]启动失败的原因 以前的错误:java.lang.NoClassDefFoundError: org / apache / http / impl / conn / PoolingClientConnectionManager at org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder.initDefaultEngine(ResteasyClientBuilder.java:428) [resteasy-client-3.0.6.Final.jar:] at org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder.build(ResteasyClientBuilder.java:333) [resteasy-client-3.0.6.Final.jar:] at org.jboss.resteasy.skeleton.key.as7.OAuthManagedResourceValve.init(OAuthManagedResourceValve.java:115) [skeleton-key-as7-3.0.6.Final.jar:] at org.jboss.resteasy.skeleton.key.as7.OAuthManagedResourceValve.lifecycleEvent(OAuthManagedResourceValve.java:66) [skeleton-key-as7-3.0.6.Final.jar:] at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:115) [jbossweb-7.0.13.Final.jar:] at org.apache.catalina.core.StandardContext.start(StandardContext.java:3845) [jbossweb-7.0.13.Final.jar:] at org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentService.java:90) [jboss-as-web-7.1.1.Final.jar:7.1.1.Final] at org.jboss.msc.service.ServiceControllerImpl $ StartTask.startService(ServiceControllerImpl.java:1811) 在 org.jboss.msc.service.ServiceControllerImpl $ StartTask.run(ServiceControllerImpl.java:1746) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_25] at java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_25]在java.lang.Thread.run(Thread.java:724) [rt.jar:1.7.0_25]引起:java.lang.ClassNotFoundException: 来自[Module。的org.apache.http.impl.conn.PoolingClientConnectionManager 来自本地模块加载器的“org.jboss.resteasy.resteasy-jaxrs:main” @ 1d1aed21(root:/Users/JamesTruty/work/jboss-as-7.1.1.Final oauth / modules)] org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190) 在 org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468) 在 org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456) 在 org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398) 在 org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120) ......还有12个
我尝试了各种尝试包含apache httpclient库的方法,但仍然没有运气。我错过了什么吗?
答案 0 :(得分:0)
NoClassDefFoundError
指定特定库在编译期间可用,但在运行时丢失。您需要确保类路径中存在httpclient jar
。如果它存在则可能是静态初始化失败或正在通过不同的类加载器加载。有关how to debug a NoClassDefFoundError
答案 1 :(得分:0)
好的,经过更多的调整,我得到了成功部署示例应用程序。我需要更新jar版本并修改Jboss中的模块xml以指向org.apache.httpcomponents以使用httpclient-4.2.1.jar,httpcore-4.2.1.jar和httpmime-4.2.1.jar。