NoClassDefFoundError:org/apache/http/client/methods/HttpUriRequest

2020-09-23 11:06发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 我正在寻找在SAP Cl...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我正在寻找在SAP Cloud Platform上运行JAVA应用程序时遇到的麻烦的答案。

我需要帮助来了解我做错了什么。

我使用Eclipse Oxygen.2 Release(4.7.2)作为开发工具。 尝试使用org.apache.http.client.HttpClient方法获取数据。

我创建了marven项目并使用下一个库列表:

导入org.apache.http.HttpEntity;
 导入org.apache.http.HttpResponse;
 导入org.apache.http.client.HttpClient;
 导入org.apache.http.client.methods.HttpGet; 

.classpath文件包含:

 classpathentry kind =" lib" path =" lib/commons-codec-1.10.jar"/>
 
 
 
 
 
 
 
 
  

pom.xml文件包含必需的依赖项:

 
  org.apache.httpcomponents 
  httpclient 
  4.5.5 
 
 <依赖性>
  org.apache.httpcomponents 
  httpcore 
  4.4.9 
  

Buildpath还包含所有需要的jar文件:

应用程序的核心逻辑是:

 HttpClient httpClient = null;
         字符串destinationName = request.getParameter(" destname");
         尝试{
            //获取HTTP目标
             上下文ctx = new InitialContext();
             HttpDestination destination = null;
             如果(destinationName!= null){
                 DestinationFactory destinationFactory =(DestinationFactory)ctx.lookup(DestinationFactory.JNDI_NAME);
                 destination =(HttpDestination)destinationFactory.getDestination(destinationName);
             }其他{
          
                 destinationName =" SND";
                 destination =(HttpDestination)ctx.lookup(" java:comp/env/" + destinationName);
             } 

Marven项目的构建成功:

 [INFO] --------------------------------------------  ----------------------------
 [INFO]建立成功
 [INFO] -----------------------------------------------  -------------------------
 [INFO]总时间:8.030 s
 [INFO]完成于:2018-03-15T01:50:27 + 03:00
 [INFO]最终内存:18M/80M
 [INFO] -----------------------------------------------  --------------------- 

但是当我在HANA Cloud Platform上尝试其他操作时,服务器返回错误:

 2018 03 14 22:10:3​​9#+ 00#ERROR#org.apache.catalina.core.ContainerBase ## anonymous#localhost-startStop-3#na#d9993445343ial#jcodemo#web ## na#na#na#na  #na#ContainerBase.addChild:启动:org.apache.catalina.LifecycleException:无法启动组件[StandardEngine [Catalina] .StandardHost [localhost] .StandardContext [/SAPAPI]]
 在org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:162)
 在org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:1015)
 在org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:991)
 在org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652)
 在org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1127)
 在org.apache.catalina.startup.HostConfig $ DeployWar.run(HostConfig.java:2020)
 在java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:471)
 在java.util.concurrent.FutureTask.run(FutureTask.java:262)
 在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
 在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:622)
 在java.lang.Thread.run(Thread.java:807)
 造成原因:java.lang.NoClassDefFoundError:org/apache/http/client/methods/HttpUriRequest
 在java.lang.Class.getDeclaredFields0(本地方法)
 在java.lang.Class.privateGetDeclaredFields(Class.java:2532)
 在java.lang.Class.getDeclaredFields(Class.java:1829)
 在org.apache.catalina.util.Introspection.getDeclaredFields(Introspection.java:106)
 在org.apache.catalina.startup.WebAnnotationSet.loadFieldsAnnotation(WebAnnotationSet.java:270)
 在org.apache.catalina.startup.WebAnnotationSet.loadApplicationServletAnnotations(WebAnnotationSet.java:139)处
 在org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:65)
 在org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:417)
 在org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:891)
 在org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:388)
 在org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
 在org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
 在org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5519)
 在org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
 ...省略了10个通用框架
 引起原因:java.lang.ClassNotFoundException:org.apache.http.client.methods.HttpUriRequest
 在org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1892)
 在org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1735)
 ...省略了24个共同的框架

我阅读了所有有关堆栈溢出的文章,并尝试了所有可以谷歌搜索的变体,但没有一个有帮助。

我做错了什么,应该在哪里定义依赖项,以使代码可执行。

我将不胜感激。

非常感谢。

(53.1 kB)
1条回答
CJones
2020-09-23 11:58

安迪,

请尝试将以下内容添加到pom.xml中,然后再次尝试查看该问题是否可以解决。

javax.servlet

javax.servlet-api

3.0.1

提供的

约瑟夫

一周热门 更多>