2

I am trying to build an app for Cloud solution. When trying to run the app locally, I got error:

java.lang.NoClassDefFoundError:

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

This is running on Java EE 7 Web Profile Tomee 7 server.

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

Local Destination for the server has been configured as ErpQueryEndpoint. Pom.xml also includes the groupID and artifactId for Odata connectivity. Packages have been imported.

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();
                 }
           }
Community
  • 1
  • 1
Tracy
  • 21
  • 2

1 Answers1

4

As I can see in your code, you are querying a custom OData service of SAP S/4HANA. For OData queries to custom OData services, you might also consider using the Virtual Data Model (VDM) of the S/4HANA Cloud SDK instead of ODataQueryBuilder. To use the VDM with a custom OData service, one can use the VDM generator as described in the following blog post. By the way, it also works for the S/4HANA On-Premise. You can find more details on the customising here.

k3na
  • 121
  • 3
  • I followed the blog and generate VDM. But now I got the compilation error for the generated java at the line import com.sap.cloud.sdk.s4hana.datamodel.odata.helper.OneToOneLink; WorkOrderOneToOneLink.java:[12,55] cannot find symbol [ERROR] symbol: class OneToOneLink. I checked the POM and it looks ok. Any suggestion on this? Thanks. – Tracy Apr 24 '19 at 13:05
  • Do you have the `com.sap.cloud.s4hana.datamodel:odata-core` dependency on your classpath? The deep dive blog posts assumes, that you use one of our archetypes to consumer your generated VDM. – Christoph Schubert Apr 24 '19 at 13:11
  • 2
    Thanks, Christoph. I fixed it by changing the SAP Cloud SDK version in POM to 2.14.0, which is the latest one so far. com.sap.cloud.s4hana sdk-bom 2.14.0 – Tracy Apr 24 '19 at 13:37