Jboss AS7 Resteasy示例Oauth2框架密钥从PoolingClientConnectionManager部署NoClassDefFoundError

时间:2014-01-13 21:01:32

标签: java jboss resteasy

使用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库的方法,但仍然没有运气。我错过了什么吗?

2 个答案:

答案 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。