В настоящее время я пытаюсь перейти с проекта Java 8 на Java 12. (Надеюсь) последнее препятствие — это старый веб-сервис, который мы вынуждены использовать. Использование WebService «как есть» в Java 8 само по себе не является проблемой, оно работает уже много лет.
В wsdl указано:
‹!--WSDL, созданный Apache Axis версии: 1.4
Построен 22 апреля 2006 г. --›
Насколько я вижу, новые версии WSDL2JAVA больше не поддерживают этот тип сервиса (поскольку они полагаются на Axis 2):
Ошибка WSDLToJava: Rpc/закодированные wsdls не поддерживаются CXF
Чтобы эту службу можно было использовать (с Java 8 и 12), мне нужна следующая библиотека:
<!-- https://mvnrepository.com/artifact/javax.xml.rpc/javax.xml.rpc-api -->
<dependency>
<groupId>javax.xml.rpc</groupId>
<artifactId>javax.xml.rpc-api</artifactId>
<version>1.1.2</version>
</dependency>
Вот где возникает проблема. Библиотека определяет частичный пакет javax.xml, который больше не разрешен, так как это системный путь Java. Любые предложения или обходные пути? Я что-то проглядел?
РЕДАКТИРОВАТЬ: ЖекаКозлов был прав в том, что ему пришлось переключиться на jakarta. Сейчас осталась еще ошибка, из-за Axis2, которая тоже требуется в проекте.
<!-- https://mvnrepository.com/artifact/org.apache.axis2/axis2-kernel -->
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-kernel</artifactId>
<version>1.7.9</version>
</dependency>
Простое добавление этого в новый проект Java 12 делает org.w3c.dom.* (например, Document) непригодным для использования.
РЕДАКТИРОВАТЬ 2: наконец-то у меня все заработало. Программа запущена, ошибок в коде не осталось. К сожалению, я не могу протестировать часть приложения Axis, потому что службы, к которым она подключается, можно использовать только в среде наших клиентов, поэтому это необходимо протестировать. И на оси 2, и на оси 2-adb мне пришлось исключить две библиотеки:
<exclusions>
<exclusion>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-stax-api_1.0_spec</artifactId>
</exclusion>
<exclusion>
<groupId>jaxen</groupId>
<artifactId>jaxen</artifactId>
</exclusion>
</exclusions>
Они блокировали org.w3c.dom.* и javax.xml.stream.* соответственно.