Ошибка команды ORDS "java -jar ords.war"

Я следую этому руководству: https://docs.oracle.com/cd/E56351_01/doc.30/e87809/getting-started-with-RESTful-services.htm

но я застрял в "F.2 Создание службы RESTful из запроса SQL".

В папке, где был установлен Oracle REST Data Services, я ввел следующую команду в командной строке:

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

и я получил эту ошибку:

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

Почему это для? и как это исправить?

1 ответ

Решение

Проблема с Java 9 и рассматривается в этом посте SO

Ваша проблема может быть решена путем выдачи этого

java -jar --add-modules java.xml.bind ords.war пользователь test_developer "SQL Developer"

Кроме того, если вы хотите создать RESTful Services с ORDS, вы также можете использовать SQL Developer и просто подключиться к схеме с поддержкой REST и использовать функцию REST в дереве соединений. Я говорю об этом здесь.

Другие вопросы по тегам