尝试通过Odata服务连接时,ErpConfigContext和ODataQueryBuilder引发错误

时间:2019-04-23 20:57:29

标签: java s4sdk

我正在尝试为Cloud解决方案构建应用程序。尝试在本地运行应用程序时,出现错误:

  

java.lang.NoClassDefFoundError:

     

com / sap / cloud / sdk / odatav2 / connectivity / ODataException。

这在Java EE 7 Web Profile Tomee 7服务器上运行。

Apr 22, 2019 3:48:33 PM org.apache.catalina.core.ContainerBase startInternal
SEVERE: A child container failed during start
java.util.center code hereoncurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/WorkOrderDemo]]
       at java.util.concurrent.FutureTask.report(FutureTask.java:122)
       at java.util.concurrent.FutureTask.get(FutureTask.java:192)
       at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:942)
       at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:872)
       at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
       at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1420)
       at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1410)
       at java.util.concurrent.FutureTask.run(FutureTask.java:266)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
       at java.lang.Thread.run(Thread.java:748)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/WorkOrderDemo]]
       at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
       ... 6 more
Caused by: java.lang.NoClassDefFoundError: com/sap/cloud/sdk/odatav2/connectivity/ODataException
       at java.lang.Class.getDeclaredFields0(Native Method)
       at java.lang.Class.privateGetDeclaredFields(Class.java:2583)
       at java.lang.Class.getDeclaredFields(Class.java:1916)
       at org.apache.catalina.util.Introspection.getDeclaredFields(Introspection.java:110)
       at org.apache.catalina.startup.WebAnnotationSet.loadFieldsAnnotation(WebAnnotationSet.java:269)
       at org.apache.catalina.startup.WebAnnotationSet.loadApplicationServletAnnotations(WebAnnotationSet.java:137)
       at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:69)
       at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:328)
       at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:768)
       at org.apache.catalina.startup.OpenEJBContextConfig.configureStart(OpenEJBContextConfig.java:124)
       at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:299)
       at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:94)
       at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5154)
       at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
       ... 6 more
Caused by: java.lang.ClassNotFoundException: com.sap.cloud.sdk.odatav2.connectivity.ODataException
       at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1309)
       at org.apache.tomee.catalina.TomEEWebappClassLoader.loadClass(TomEEWebappClassLoader.java:208)
       at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1137)
       ... 20 more

Apr 22, 2019 3:48:33 PM org.apache.catalina.core.ContainerBase startInternal
SEVERE: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
       at java.util.concurrent.FutureTask.report(FutureTask.java:122)
       at java.util.concurrent.FutureTask.get(FutureTask.java:192)
       at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:942)
       at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
       at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
       at org.apache.catalina.core.StandardService.startInternal(StandardService.java:422)
       at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
       at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:793)
       at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
       at org.apache.catalina.startup.Catalina.start(Catalina.java:681)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
       at java.lang.reflect.Method.invoke(Method.java:498)
       at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:353)
       at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:493)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
       at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
       at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1420)
       at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1410)
       at java.util.concurrent.FutureTask.run(FutureTask.java:266)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
       at java.lang.Thread.run(Thread.java:748)
Caused by: org.apache.catalina.LifecycleException: A child container failed during start
       at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:950)
       at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:872)
       at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
       ... 6 more
Caused by: java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/WorkOrderDemo]]
       at java.util.concurrent.FutureTask.report(FutureTask.java:122)
       at java.util.concurrent.FutureTask.get(FutureTask.java:192)
       at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:942)
       ... 8 more
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/WorkOrderDemo]]
       at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
       ... 6 more
Caused by: java.lang.NoClassDefFoundError: com/sap/cloud/sdk/odatav2/connectivity/ODataException
       at java.lang.Class.getDeclaredFields0(Native Method)
       at java.lang.Class.privateGetDeclaredFields(Class.java:2583)
       at java.lang.Class.getDeclaredFields(Class.java:1916)
       at org.apache.catalina.util.Introspection.getDeclaredFields(Introspection.java:110)
       at org.apache.catalina.startup.WebAnnotationSet.loadFieldsAnnotation(WebAnnotationSet.java:269)
       at org.apache.catalina.startup.WebAnnotationSet.loadApplicationServletAnnotations(WebAnnotationSet.java:137)
       at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:69)
       at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:328)
       at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:768)
       at org.apache.catalina.startup.OpenEJBContextConfig.configureStart(OpenEJBContextConfig.java:124)
       at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:299)
       at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:94)
       at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5154)
       at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
       ... 6 more
Caused by: java.lang.ClassNotFoundException: com.sap.cloud.sdk.odatav2.connectivity.ODataException
       at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1309)
       at org.apache.tomee.catalina.TomEEWebappClassLoader.loadClass(TomEEWebappClassLoader.java:208)
       at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1137)
       ... 20 more

Apr 22, 2019 3:48:33 PM org.apache.catalina.startup.Catalina start
SEVERE: The required Server component failed to start so Tomcat is unable to start.
org.apache.catalina.LifecycleException: Failed to start component [StandardServer[8005]]
       at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
       at org.apache.catalina.startup.Catalina.start(Catalina.java:681)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
       at java.lang.reflect.Method.invoke(Method.java:498)
       at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:353)
       at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:493)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardService[Catalina]]
       at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
       at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:793)
       at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
       ... 7 more
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina]]
       at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
       at org.apache.catalina.core.StandardService.startInternal(StandardService.java:422)
       at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
       ... 9 more
Caused by: org.apache.catalina.LifecycleException: A child container failed during start
       at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:950)
       at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
       at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
       ... 11 more
Caused by: java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
       at java.util.concurrent.FutureTask.report(FutureTask.java:122)
       at java.util.concurrent.FutureTask.get(FutureTask.java:192)
       at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:942)
       ... 13 more
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
       at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
       at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1420)
       at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1410)
       at java.util.concurrent.FutureTask.run(FutureTask.java:266)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
       at java.lang.Thread.run(Thread.java:748)
Caused by: org.apache.catalina.LifecycleException: A child container failed during start
       at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:950)
       at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:872)
       at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
       ... 6 more
Caused by: java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/WorkOrderDemo]]
       at java.util.concurrent.FutureTask.report(FutureTask.java:122)
       at java.util.concurrent.FutureTask.get(FutureTask.java:192)
       at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:942)
       ... 8 more
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/WorkOrderDemo]]
       at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
       ... 6 more
Caused by: java.lang.NoClassDefFoundError: com/sap/cloud/sdk/odatav2/connectivity/ODataException
       at java.lang.Class.getDeclaredFields0(Native Method)
       at java.lang.Class.privateGetDeclaredFields(Class.java:2583)
       at java.lang.Class.getDeclaredFields(Class.java:1916)
       at org.apache.catalina.util.Introspection.getDeclaredFields(Introspection.java:110)
       at org.apache.catalina.startup.WebAnnotationSet.loadFieldsAnnotation(WebAnnotationSet.java:269)
       at org.apache.catalina.startup.WebAnnotationSet.loadApplicationServletAnnotations(WebAnnotationSet.java:137)
       at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:69)
       at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:328)
       at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:768)
       at org.apache.catalina.startup.OpenEJBContextConfig.configureStart(OpenEJBContextConfig.java:124)
       at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:299)
       at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:94)
       at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5154)
       at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
       ... 6 more
Caused by: java.lang.ClassNotFoundException: com.sap.cloud.sdk.odatav2.connectivity.ODataException
       at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1309)
       at org.apache.tomee.catalina.TomEEWebappClassLoader.loadClass(TomEEWebappClassLoader.java:208)
       at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1137)
       ... 20 more

服务器的本地目标已配置为ErpQueryEndpointPom.xml还包括用于groupID连接的artifactIdOdata。包已导入。

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
                 // TODO Auto-generated method stub
                 //response.getWriter().append("Served at: ").append(request.getContextPath());
                 final ErpConfigContext configContext = new ErpConfigContext(ErpDestination.getDefaultName());
                 try {
                        final List<MyWorkOrderType> workOrders = ODataQueryBuilder
                                .withEntity("/sap/opu/odata/sap/ZCF_workorder_SRV",
                                        "WorkOrderSet")
                                .select("Aufnr",
                                        "Ktext",
                                        "Auart",
                                        "Asttx")
                                .build()
                                .execute(configContext)
                                .asList(MyWorkOrderType.class);
                 } catch (IllegalArgumentException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                 } catch (ODataException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                 }
           }

1 个答案:

答案 0 :(得分:4)

正如我在您的代码中看到的那样,您正在查询SAP S / 4HANA的自定义OData服务。对于自定义OData服务的OData查询,您还可以考虑使用Virtual Data Model (VDM) of the S/4HANA Cloud SDK而不是ODataQueryBuilder。要将VDM与自定义OData服务一起使用,可以使用following blog post中所述的VDM生成器。顺便说一下,它也适用于S / 4HANA内部部署。您可以找到有关自定义here的更多详细信息。