Search code examples
javaoracle-ords

ORDS "java -jar ords.war" command error


I'm following this guide: https://docs.oracle.com/cd/E56351_01/doc.30/e87809/getting-started-with-RESTful-services.htm#AELIG90200

but I got stuck in "F.2 Create a RESTful Service from a SQL Query".

In the folder where Oracle REST Data Services was installed, I entered the following command in a command prompt:

java -jar ords.war user test_developer "SQL Developer"

and I got this error:

java.lang.NoClassDefFoundError: javax/xml/bind/ValidationEventHandler
        at java.base/java.lang.Class.getDeclaredFields0(Native Method)
        at java.base/java.lang.Class.privateGetDeclaredFields(Unknown Source)
        at java.base/java.lang.Class.getDeclaredFields(Unknown Source)
        at oracle.dbtools.injector.impl.__Reflections.constantFields(__Reflectio                           ns.java:30)
        at oracle.dbtools.injector.impl.InjectorImpl$Builder.add(InjectorImpl.ja                           va:356)
        at oracle.dbtools.injector.impl.InjectorImpl$Builder.add(InjectorImpl.ja                           va:378)
        at oracle.dbtools.injector.impl.InjectorImpl$Builder.add(InjectorImpl.ja                           va:310)
        at oracle.dbtools.common.di.Services$Builder.add(Services.java:409)
        at oracle.dbtools.common.di.Services$Builder.load(Services.java:474)
        at oracle.dbtools.common.app.ApplicationContext.loadServices(Application                           Context.java:167)
        at oracle.dbtools.cmdline.Commands.main(Commands.java:345)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Nativ                           e Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknow                           n Source)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Un                           known Source)
        at java.base/java.lang.reflect.Method.invoke(Unknown Source)
        at oracle.dbtools.jarcl.Entrypoint.main(Entrypoint.java:58)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.ValidationEventHandl                           er
        at java.base/java.lang.ClassLoader.findClass(Unknown Source)
        at oracle.dbtools.jarcl.JarClassLoader.findClass(JarClassLoader.java:63)
        at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
        at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
        ... 16 more
java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
        at java.base/java.lang.Class.getDeclaredFields0(Native Method)
        at java.base/java.lang.Class.privateGetDeclaredFields(Unknown Source)
        at java.base/java.lang.Class.getDeclaredFields(Unknown Source)
        at oracle.dbtools.injector.impl.__Reflections.constantFields(__Reflectio                           ns.java:30)
        at oracle.dbtools.injector.impl.InjectorImpl$Builder.add(InjectorImpl.ja                           va:356)
        at oracle.dbtools.injector.impl.InjectorImpl$Builder.add(InjectorImpl.ja                           va:378)
        at oracle.dbtools.injector.impl.InjectorImpl$Builder.add(InjectorImpl.ja                           va:310)
        at oracle.dbtools.common.di.Services$Builder.add(Services.java:409)
        at oracle.dbtools.common.di.Services$Builder.load(Services.java:474)
        at oracle.dbtools.common.app.ApplicationContext.loadServices(Application                           Context.java:167)
        at oracle.dbtools.cmdline.Commands.main(Commands.java:345)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Nativ                           e Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknow                           n Source)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Un                           known Source)
        at java.base/java.lang.reflect.Method.invoke(Unknown Source)
        at oracle.dbtools.jarcl.Entrypoint.main(Entrypoint.java:58)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException
        at java.base/java.lang.ClassLoader.findClass(Unknown Source)
        at oracle.dbtools.jarcl.JarClassLoader.findClass(JarClassLoader.java:63)
        at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
        at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
        ... 16 more
java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
        at java.base/java.lang.Class.getDeclaredFields0(Native Method)
        at java.base/java.lang.Class.privateGetDeclaredFields(Unknown Source)
        at java.base/java.lang.Class.getDeclaredFields(Unknown Source)
        at oracle.dbtools.injector.impl.__Reflections.constantFields(__Reflectio                           ns.java:30)
        at oracle.dbtools.injector.impl.InjectorImpl$Builder.add(InjectorImpl.ja                           va:356)
        at oracle.dbtools.injector.impl.InjectorImpl$Builder.add(InjectorImpl.ja                           va:378)
        at oracle.dbtools.injector.impl.InjectorImpl$Builder.add(InjectorImpl.ja                           va:310)
        at oracle.dbtools.common.di.Services$Builder.add(Services.java:409)
        at oracle.dbtools.common.di.Services$Builder.load(Services.java:474)
        at oracle.dbtools.common.app.ApplicationContext.loadServices(Application                           Context.java:167)
        at oracle.dbtools.cmdline.Commands.main(Commands.java:345)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Nativ                           e Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknow                           n Source)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Un                           known Source)
        at java.base/java.lang.reflect.Method.invoke(Unknown Source)
        at oracle.dbtools.jarcl.Entrypoint.main(Entrypoint.java:58)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException
        at java.base/java.lang.ClassLoader.findClass(Unknown Source)
        at oracle.dbtools.jarcl.JarClassLoader.findClass(JarClassLoader.java:63)
        at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
        at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
        ... 16 more
null
java.lang.reflect.InvocationTargetException
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Nativ                           e Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknow                           n Source)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Un                           known Source)
        at java.base/java.lang.reflect.Method.invoke(Unknown Source)
        at oracle.dbtools.jarcl.Entrypoint.main(Entrypoint.java:58)
Caused by: java.lang.NoClassDefFoundError: javax/xml/bind/ValidationEventHandler
        at java.base/java.lang.Class.getDeclaredConstructors0(Native Method)
        at java.base/java.lang.Class.privateGetDeclaredConstructors(Unknown Sour                           ce)
        at java.base/java.lang.Class.getDeclaredConstructors(Unknown Source)
        at oracle.dbtools.injector.impl.__Reflections.getConstructorsAnnotatedWi                           th(__Reflections.java:56)
        at oracle.dbtools.injector.impl.Constructors.getInjectConstructors(Const                           ructors.java:39)
        at oracle.dbtools.injector.impl.DependencyGraph.annotatedConstructor(Dep                           endencyGraph.java:416)
        at oracle.dbtools.injector.impl.DependencyGraph.dependencies(DependencyG                           raph.java:204)
        at oracle.dbtools.injector.impl.DependencyGraph.graph(DependencyGraph.ja                           va:297)
        at oracle.dbtools.injector.impl.DependencyGraph.<init>(DependencyGraph.j                           ava:55)
        at oracle.dbtools.injector.impl.DependencyGraph.<init>(DependencyGraph.j                           ava:37)
        at oracle.dbtools.injector.impl.DependencyGraph$Builder.build(Dependency                           Graph.java:490)
        at oracle.dbtools.injector.impl.InjectorImpl$Builder.build(InjectorImpl.                           java:385)
        at oracle.dbtools.injector.impl.InjectorImpl$Builder.build(InjectorImpl.                           java:310)
        at oracle.dbtools.common.di.Services$Builder.build(Services.java:416)
        at oracle.dbtools.common.di.Services$Builder.build(Services.java:431)
        at oracle.dbtools.conf.ConfigurationSettings.injectConfigurationSettingV                           alues(ConfigurationSettings.java:48)
        at oracle.dbtools.common.app.ApplicationContext.<init>(ApplicationContex                           t.java:98)
        at oracle.dbtools.common.app.ApplicationContext.<init>(ApplicationContex                           t.java:48)
        at oracle.dbtools.cmdline.Commands.main(Commands.java:345)
        ... 5 more
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.ValidationEventHandl                           er
        at java.base/java.lang.ClassLoader.findClass(Unknown Source)
        at oracle.dbtools.jarcl.JarClassLoader.findClass(JarClassLoader.java:63)
        at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
        at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
        ... 24 more

Why is this for? and How to fix it?


Solution

  • An issue with Java 9 and addressed in this SO post

    Your issue can be worked around by issuing this

    java -jar --add-modules java.xml.bind ords.war user test_developer "SQL Developer"

    Also, if you're wanting to build RESTful Services with ORDS, you can also use SQL Developer and simply connect to the REST enabled schema and use the REST feature in the connection tree. I talk about this here.

    enter image description here