Зависимость не разрешена: классу DocumentBuilderFactory нужна зависимость javax.xml.parsers в openJDK 11

Заранее спасибо, кому, поможете, скорее проголосуйте за вопрос:)

История: Я использовал JDK8 и IVY в качестве менеджера зависимостей в ANT Builder. все было отлично. мой DocumentBuilderFactory класс в состоянии найти javax.xml.parsers зависимость.

Проблема: теперь я перешел на Open JDK11, сейчас DocumentBuilderFactory не в состоянии найти javax.xml.parsers зависимость.

Eclipse дает мне советы по импорту, но когда я импортирую, ничего не происходит, и уже при импорте говорится, что импорт javax.xml.parsers.DocumentBuilder не может быть разрешен следующим образом:

Что мне нужно в качестве решения: мне нужна IVY-зависимость для поддержки Open JDK 11 javax.xml.parsers за DocumentBuilderFactory

4 ответа

Решение

javax.xml извлекается как отдельный модуль в Java 9.

В вашем проекте Java build path вариант, перейдите к Libraries Перейдите на вкладку и измените JDK с Classpath на ModulePath, и это должно решить эту проблему.

Дайте мне знать, если это помогло.

Я тоже столкнулся с этой проблемой,

Это было из-за DocumentBuilderFactory доступен и в других пакетах.

Причина Иногдаdependencies взять transitive dependencies вместе с собой

Например класс XYZ доступен в jarA, JarB а также JarCтоже. Эта проблема не была видна доJava8 но после Java9 релиз, Java9выпуск с Java Platform Module System.

Эта модульная система ограничивает наличие нескольких классов в разных банках с одинаковым именем, я не говорю, что мы не можем иметь одно и то же имя в разных классах, для этого вам нужно написать module-info.java и вам нужно преобразовать ваше приложение в Module System.

Если вы не планируете переносить свое приложение в Module System то вы можете сделать это, удалить зависимости, которые не требуются для ваших приложений, и иметь классы с одинаковыми именами.

Как для вашей проблемы, что вы можете сделать

  • Открыть проект в eclipse
  • Нажмите ctrl + shit + T >
  • Откроется диалоговое окно> напишите имя вашего класса, который создает проблему, >
  • В диалоговом окне будут показаны пакеты, содержащие одинаковые class, Теперь найдите пакет, который не является обязательным или транзитивным свойством из-за другой зависимости>
  • Right click на названии пакета и нажмите show in Package Explorer>
  • Теперь у вас будет jar имя, remove или exclude который jar from your dependency manager, LikeGradleorMavenOrПлющ

Это поможет вам, потому что это помогло и мне.

Я знаю, что это длительный процесс, но это ваше приложение, ваша любовь, вы должны поддерживать это.

❤ Наслаждайтесь

Я использую Eclipse Scout v9.0, и я столкнулся с той же проблемой при переходе с Java 1.8 на 11. Я потратил часы на ее решение и наконец понял. Используя информацию, предоставленную "CatalystOne Dupinder", я обнаружил, что Java 11 имеет собственный src.jar, содержащий следующий класс:

  • DocumentBuilder.java
  • DocumentBuilderFactory.java
  • FactoryConfigurrationErro.java
  • и т.д. таким же классом, как "xml-apis" таким образом. Итак, я сделал следующее:
  • исключить "xml-apis" из зависимости maven,
  • настроил путь сборки модуля и на вкладке "Заказ и экспорт" нажмите "Системная библиотека JRE [JavaSE-11]"

Я только что экспортировал библиотеку jar из Java 11 в зависимости от maven.

Надеюсь, это поможет вам, ребята..

Я решил ту же проблему, выполнив следующие действия:

  1. Я выполнил mvn dependency: tree в своем терминале

    выход:

    [ИНФОРМАЦИЯ] + - org.seleniumhq.selenium:selenium-server: jar: 3.8.1: компилировать [ИНФОРМАЦИЯ] | + - com.beust: jcommander: jar: 1.48: compile [ИНФОРМАЦИЯ] | + - org.apache.commons: commons-text: jar: 1.1: compile [ИНФОРМАЦИЯ] | + - commons-io: commons-io: jar: 2.6: compile [ИНФОРМАЦИЯ] | + - commons-net: commons-net: jar: 3.6: compile [ИНФОРМАЦИЯ] | + - org.w3c.css: sac: jar: 1.3: компилировать [ИНФОРМАЦИЯ] | + - net.sourceforge.cssparser: cssparser: jar: 0.9.24: компилировать [ИНФОРМАЦИЯ] | + - net.sourceforge.htmlunit: htmlunit: jar: 2.28: скомпилировать [ИНФОРМАЦИЯ] | + - net.sourceforge.htmlunit: htmlunit-core-js: jar: 2.28: compile [ИНФОРМАЦИЯ] | + - net.sourceforge.htmlunit: neko-htmlunit: jar: 2.28: compile [ИНФОРМАЦИЯ] | + - net.jcip: jcip-annotations: jar: 1.0: compile [ИНФОРМАЦИЯ] | + - org.seleniumhq.selenium: jetty-repacked: jar: 9.4.7.v20170914: compile [INFO] | + - org.eclipse.jetty:jetty-client: jar: 9.4.7.v20170914: compile [INFO] | + - org.eclipse.jetty: причал-http: jar: 9.4.7.v20170914: компилировать [ИНФОРМАЦИЯ] | + - org.eclipse.jetty:jetty-io: jar: 9.4.7.v20170914: compile [INFO] | + - org.eclipse.jetty:jetty-util: jar: 9.4.7.v20170914: compile [ИНФОРМАЦИЯ] | + - org.eclipse.jetty:jetty-xml: jar: 9.4.7.v20170914: compile [ИНФОРМАЦИЯ] | + - org.seleniumhq.selenium:htmlunit-driver: jar: 2.28: компилировать [ИНФОРМАЦИЯ] | + - javax.servlet: javax.servlet-api: jar: 3.1.0: компиляция [ИНФОРМАЦИЯ] | + - org.eclipse.jetty.websocket:websocket-api: jar: 9.4.7.v20170914: компилировать [ИНФОРМАЦИЯ] | + - org.eclipse.jetty.websocket:websocket-client: jar: 9.4.7.v20170914: компилировать [ИНФОРМАЦИЯ] | + - org.eclipse.jetty.websocket:websocket-common: jar: 9.4.7.v20170914: компилировать [ИНФОРМАЦИЯ] | + - xalan: сериализатор: jar: 2.7.2: компиляция [ИНФОРМАЦИЯ] | + - xalan: xalan: jar: 2.7.2: компилировать [ИНФОРМАЦИЯ] | + - xerces: xercesImpl: jar: 2.11.0: компилировать [ИНФОРМАЦИЯ] | + - xml-apis: xml-apis: jar: 1.4.01: компиляция [ИНФОРМАЦИЯ] | - org.yaml:snakeyaml: jar: 1.15: компилировать причал: jetty-io: jar: 9.4.7.v20170914: compile [INFO] | + - org.eclipse.jetty:jetty-util: jar: 9.4.7.v20170914: compile [ИНФОРМАЦИЯ] | + - org.eclipse.jetty:jetty-xml: jar: 9.4.7.v20170914: compile [ИНФОРМАЦИЯ] | + - org.seleniumhq.selenium:htmlunit-driver: jar: 2.28: компилировать [ИНФОРМАЦИЯ] | + - javax.servlet: javax.servlet-api: jar: 3.1.0: компиляция [ИНФОРМАЦИЯ] | + - org.eclipse.jetty.websocket:websocket-api: jar: 9.4.7.v20170914: компилировать [ИНФОРМАЦИЯ] | + - org.eclipse.jetty.websocket:websocket-client: jar: 9.4.7.v20170914: компилировать [ИНФОРМАЦИЯ] | + - org.eclipse.jetty.websocket:websocket-common: jar: 9.4.7.v20170914: компилировать [ИНФОРМАЦИЯ] | + - xalan: сериализатор: jar: 2.7.2: компиляция [ИНФОРМАЦИЯ] | + - xalan: xalan: jar: 2.7.2: компилировать [ИНФОРМАЦИЯ] | + - xerces: xercesImpl: jar: 2.11.0: компилировать [ИНФОРМАЦИЯ] | + - xml-apis: xml-apis: jar: 1.4.01: компиляция [ИНФОРМАЦИЯ] | - org.yaml:snakeyaml: jar: 1.15: компилировать причал: jetty-io: jar: 9.4.7.v20170914: compile [INFO] | + - org.eclipse.jetty:jetty-util: jar: 9.4.7.v20170914: compile [ИНФОРМАЦИЯ] | + - org.eclipse.jetty:jetty-xml: jar: 9.4.7.v20170914: compile [ИНФОРМАЦИЯ] | + - org.seleniumhq.selenium:htmlunit-driver: jar: 2.28: компилировать [ИНФОРМАЦИЯ] | + - javax.servlet: javax.servlet-api: jar: 3.1.0: компиляция [ИНФОРМАЦИЯ] | + - org.eclipse.jetty.websocket:websocket-api: jar: 9.4.7.v20170914: компилировать [ИНФОРМАЦИЯ] | + - org.eclipse.jetty.websocket:websocket-client: jar: 9.4.7.v20170914: компилировать [ИНФОРМАЦИЯ] | + - org.eclipse.jetty.websocket:websocket-common: jar: 9.4.7.v20170914: компилировать [ИНФОРМАЦИЯ] | + - xalan: сериализатор: jar: 2.7.2: компиляция [ИНФОРМАЦИЯ] | + - xalan: xalan: jar: 2.7.2: компилировать [ИНФОРМАЦИЯ] | + - xerces: xercesImpl: jar: 2.11.0: компилировать [ИНФОРМАЦИЯ] | + - xml-apis: xml-apis: jar: 1.4.01: компиляция [ИНФОРМАЦИЯ] | - org.yaml:snakeyaml: jar: 1.15: компилировать eclipse.jetty: jetty-util: jar: 9.4.7.v20170914: скомпилировать [ИНФОРМАЦИЯ] | + - org.eclipse.jetty:jetty-xml: jar: 9.4.7.v20170914: compile [ИНФОРМАЦИЯ] | + - org.seleniumhq.selenium:htmlunit-driver: jar: 2.28: компилировать [ИНФОРМАЦИЯ] | + - javax.servlet: javax.servlet-api: jar: 3.1.0: компиляция [ИНФОРМАЦИЯ] | + - org.eclipse.jetty.websocket:websocket-api: jar: 9.4.7.v20170914: компилировать [ИНФОРМАЦИЯ] | + - org.eclipse.jetty.websocket:websocket-client: jar: 9.4.7.v20170914: компилировать [ИНФОРМАЦИЯ] | + - org.eclipse.jetty.websocket:websocket-common: jar: 9.4.7.v20170914: компилировать [ИНФОРМАЦИЯ] | + - xalan: сериализатор: jar: 2.7.2: компиляция [ИНФОРМАЦИЯ] | + - xalan: xalan: jar: 2.7.2: компилировать [ИНФОРМАЦИЯ] | + - xerces: xercesImpl: jar: 2.11.0: компилировать [ИНФОРМАЦИЯ] | + - xml-apis: xml-apis: jar: 1.4.01: компиляция [ИНФОРМАЦИЯ] | - org.yaml:snakeyaml: jar: 1.15: компилировать eclipse.jetty: jetty-util: jar: 9.4.7.v20170914: скомпилировать [ИНФОРМАЦИЯ] | + - org.eclipse.jetty:jetty-xml: jar: 9.4.7.v20170914: compile [ИНФОРМАЦИЯ] | + - org.seleniumhq.selenium:htmlunit-driver: jar: 2.28: компилировать [ИНФОРМАЦИЯ] | + - javax.servlet: javax.servlet-api: jar: 3.1.0: компиляция [ИНФОРМАЦИЯ] | + - org.eclipse.jetty.websocket:websocket-api: jar: 9.4.7.v20170914: компилировать [ИНФОРМАЦИЯ] | + - org.eclipse.jetty.websocket:websocket-client: jar: 9.4.7.v20170914: компилировать [ИНФОРМАЦИЯ] | + - org.eclipse.jetty.websocket:websocket-common: jar: 9.4.7.v20170914: компилировать [ИНФОРМАЦИЯ] | + - xalan: сериализатор: jar: 2.7.2: компиляция [ИНФОРМАЦИЯ] | + - xalan: xalan: jar: 2.7.2: компилировать [ИНФОРМАЦИЯ] | + - xerces: xercesImpl: jar: 2.11.0: компилировать [ИНФОРМАЦИЯ] | + - xml-apis: xml-apis: jar: 1.4.01: компилировать [ИНФОРМАЦИЯ] | - org.yaml:snakeyaml: jar: 1.15: компилировать компилировать [ИНФОРМАЦИЯ] | + - org.seleniumhq.selenium:htmlunit-driver: jar: 2.28: компилировать [ИНФОРМАЦИЯ] | + - javax.servlet: javax.servlet-api: jar: 3.1.0: компиляция [ИНФОРМАЦИЯ] | + - org.eclipse.jetty.websocket:websocket-api: jar: 9.4.7.v20170914: компилировать [ИНФОРМАЦИЯ] | + - org.eclipse.jetty.websocket:websocket-client: jar: 9.4.7.v20170914: скомпилировать [ИНФОРМАЦИЯ] | + - org.eclipse.jetty.websocket:websocket-common: jar: 9.4.7.v20170914: компилировать [ИНФОРМАЦИЯ] | + - xalan: сериализатор: jar: 2.7.2: компиляция [ИНФОРМАЦИЯ] | + - xalan: xalan: jar: 2.7.2: компилировать [ИНФОРМАЦИЯ] | + - xerces: xercesImpl: jar: 2.11.0: компилировать [ИНФОРМАЦИЯ] | + - xml-apis: xml-apis: jar: 1.4.01: компиляция [ИНФОРМАЦИЯ] | - org.yaml:snakeyaml: jar: 1.15: компилировать компилировать [ИНФОРМАЦИЯ] | + - org.seleniumhq.selenium:htmlunit-driver: jar: 2.28: компилировать [ИНФОРМАЦИЯ] | + - javax.servlet: javax.servlet-api: jar: 3.1.0: компиляция [ИНФОРМАЦИЯ] | + - org.eclipse.jetty.websocket:websocket-api: jar: 9.4.7.v20170914: компилировать [ИНФОРМАЦИЯ] | + - org.eclipse.jetty.websocket:websocket-client: jar: 9.4.7.v20170914: скомпилировать [ИНФОРМАЦИЯ] | + - org.eclipse.jetty.websocket:websocket-common: jar: 9.4.7.v20170914: компилировать [ИНФОРМАЦИЯ] | + - xalan: сериализатор: jar: 2.7.2: компиляция [ИНФОРМАЦИЯ] | + - xalan: xalan: jar: 2.7.2: компилировать [ИНФОРМАЦИЯ] | + - xerces: xercesImpl: jar: 2.11.0: компилировать [ИНФОРМАЦИЯ] | + - xml-apis: xml-apis: jar: 1.4.01: компиляция [ИНФОРМАЦИЯ] | - org.yaml:snakeyaml: jar: 1.15: компилировать websocket:websocket-client: jar: 9.4.7.v20170914: компиляция [ИНФОРМАЦИЯ] | + - org.eclipse.jetty.websocket:websocket-common: jar: 9.4.7.v20170914: компилировать [ИНФОРМАЦИЯ] | + - xalan: сериализатор: jar: 2.7.2: компиляция [ИНФОРМАЦИЯ] | + - xalan: xalan: jar: 2.7.2: компилировать [ИНФОРМАЦИЯ] | + - xerces: xercesImpl: jar: 2.11.0: компилировать [ИНФОРМАЦИЯ] | + - xml-apis: xml-apis: jar: 1.4.01: компилировать [ИНФОРМАЦИЯ] | - org.yaml:snakeyaml: jar: 1.15: компилировать websocket:websocket-client: jar: 9.4.7.v20170914: компиляция [ИНФОРМАЦИЯ] | + - org.eclipse.jetty.websocket:websocket-common: jar: 9.4.7.v20170914: компилировать [ИНФОРМАЦИЯ] | + - xalan: сериализатор: jar: 2.7.2: компиляция [ИНФОРМАЦИЯ] | + - xalan: xalan: jar: 2.7.2: компилировать [ИНФОРМАЦИЯ] | + - xerces: xercesImpl: jar: 2.11.0: компилировать [ИНФОРМАЦИЯ] | + - xml-apis: xml-apis: jar: 1.4.01: компиляция [ИНФОРМАЦИЯ] | - org.yaml:snakeyaml: jar: 1.15: компилировать

  2. Я исключил зависимость xml-apis из org.seleniumhq.selenium:selenium-server: jar: 3.8.1:compile

    org.seleniumhq.selenium селен-сервер 3.8.1 xml-apis xml-apis

3. Я обновляю проект maven (Project> maven> update project). После обновления проекта maven я решил свою проблему.

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