Я пытаюсь перейти с Java 7 на Java 8 для существующей системы, которая реализует Jax-ws 2.0. Процесс сборки и развертывания использует задачу Ant (apt, wsgen, wsimport) для генерации wsdl и библиотек из интерфейса конечной точки аннотированного сервиса java, а из созданного WSDL - подготавливает клиентские библиотеки. Что работает, как ожидалось, до Java - 7. Но когда я пытался использовать jdk-8 для построения, возникла проблема с использованием jax-ws-библиотек и вышеупомянутой муравьиной задачи. Я обновил JAX-WS lib до JAX-WS RI - 2.2.8 и JAX-WS 2.2.10, которые работали до WSDL и генерации схемы с помощью ant task wsgen, но все же я не могу разрешить создание клиентских библиотек из созданного WSDL с использованием wsimport. Я получаю следующее сообщение об ошибкеПровайдер для класса javax.xml.validation.SchemaFactory не может быть создан (javax.xml.validation.SchemaFactoryConfigurationError)
javax.xml.validation.SchemaFactoryConfigurationError: Provider для класса javax.xml.validation.SchemaFactory не может быть создан
Мои wsgen и wsimport сценарии, как показано ниже:
<taskdef name="wsgen" classname="com.sun.tools.ws.ant.WsGen">
<classpath refid="project.classpath"/>
</taskdef>
<wsgen resourcedestdir="${smruti.wsdl.dir}"
sei="com.smruti.webservice.SmrutiWebService"
keep="true"
sourcedestdir="${smruti.wsdl.dir}\src"
destdir="${build.dir}"
genwsdl="true">
<classpath>
<path refid="project.classpath"/>
<pathelement location="${build.dir}"/>
</classpath>
</wsgen>
<taskdef name="wsimport" classname="com.sun.tools.ws.ant.WsImport">
<classpath refid="project.classpath" />
</taskdef>
<wsimport sourcedestdir="${generated.dir}/src" destdir="${build.dir}" wsdl="${wsdl.location}" keep="true" extension="true" package="com.smruti.webservice.client"/>
Примечание. Я использую jdk 8, ant-1.9.4, jax-ws ri - 2.2.10 libs.