Я конвертирую приложение, которое использует JAXB и JAX-WS, из JDK 8 в JDK 11. Код запускается, когда я использую Eclipse IDE, но точно такой же код не работает с IntelliJ IDEA
Я создал проект Maven с использованием Eclipse и IntelliJ IDEA. Проблемы поиска рабочей комбинации ресурсов Maven были описаны в другом вопросе. JDK 11 с проблемами JAXB и JAXWS
Код создается без ошибок в обеих средах. Я пытался создать проект IntelliJ IDEA как проект Maven, а также стандартный проект IDEA
часть пом.хл
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>11.0.2</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-fxml</artifactId>
<version>11.0.2</version>
</dependency>
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>2.3.0</version>
</dependency>
<!-- JAXWS for Java 11 -->
<dependency>
<groupId>com.sun.xml.ws</groupId>
<artifactId>rt</artifactId>
<version>2.3.1</version>
</dependency>
module-info.java
module org.openfx.gustfx {
requires javafx.controls;
requires javafx.fxml;
requires transitive javafx.graphics;
requires java.xml.bind;
requires java.xml.ws;
requires javax.jws;
opens com.agile.ws.schema.common.v1.jaxws to javafx.fxml;
opens org.openfx.gustfx to javafx.fxml;
exports org.openfx.gustfx;
}
Когда код запускается из Eclipse, ошибок нет.
Запуск этого же кода из IntelliJ IDE приводит к этой ошибке
java.lang.ClassNotFoundException: com.sun.xml.internal.ws.spi.ProviderImpl
Поиск по файлам jar подтверждает, что ProviderImpl.class теперь находится в com.sun.ws.spi, а не в com.sun.xml.internal.ws.spi. Это не вызывает проблемы с затмением, но IDEA сообщает ClassNotFoundException
Поэтому мой вопрос «Как затмение решает эту проблему, а IntelliJ - нет?»