2015-03-20 1 views
1

Я пытаюсь перейти с 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.

ответ

1

Как работа вокруг, я могу решить вышеупомянутую проблему, используя jdk при условии, что wsimport.exe вместо ant задачи. Ниже приведен сценарий для тех же ..

<exec executable="C:\Program Files\Java\jdk1.8.0_40\bin\wsimport.exe"> 
     <arg line="${wsdl.location} -s ${generated.dir}/src -p com.smruti.webservice.client -d ${build.dir} -extension -keep -Xdebug -verbose" /> 
</exec> 

Но, все же не в состоянии использовать wsimport как муравей задачи с Java 8 и JAX-WS-2.2.10.

 Смежные вопросы

  • Нет связанных вопросов^_^