无法创建 class javax.xml.validation.SchemaFactory 的提供程序(javax.xml.validation.SchemaFactoryConfigurationError)
Provider for class javax.xml.validation.SchemaFactory cannot be created (javax.xml.validation.SchemaFactoryConfigurationError)
我正在尝试将现有系统从 Java 7 迁移到 Java 8,该系统实现了 Jax-ws 2.0。构建和部署过程使用 Ant 任务(apt、wsgen、wsimport)从 java 带注释的服务端点接口生成 wsdl 和库,并从生成的 WSDL 准备客户端库。在 Java – 7 之前按预期工作。但是当我尝试使用 jdk-8 进行构建时,在使用 jax-ws 库和上述 ant 任务时遇到问题。我已经将 JAX-WS lib 升级到 JAX-WS RI – 2.2.8 和 JAX-WS 2.2.10,它在使用 ant task wsgen 生成 WSDL 和模式之前一直有效,但我仍然无法解决客户端库的生成问题从使用 wsimport 生成的 WSDL。我收到以下错误
javax.xml.validation.SchemaFactoryConfigurationError:无法创建 class 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 库。
作为解决方法,我可以通过使用 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 的 ant 任务。
我正在尝试将现有系统从 Java 7 迁移到 Java 8,该系统实现了 Jax-ws 2.0。构建和部署过程使用 Ant 任务(apt、wsgen、wsimport)从 java 带注释的服务端点接口生成 wsdl 和库,并从生成的 WSDL 准备客户端库。在 Java – 7 之前按预期工作。但是当我尝试使用 jdk-8 进行构建时,在使用 jax-ws 库和上述 ant 任务时遇到问题。我已经将 JAX-WS lib 升级到 JAX-WS RI – 2.2.8 和 JAX-WS 2.2.10,它在使用 ant task wsgen 生成 WSDL 和模式之前一直有效,但我仍然无法解决客户端库的生成问题从使用 wsimport 生成的 WSDL。我收到以下错误
javax.xml.validation.SchemaFactoryConfigurationError:无法创建 class 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 库。
作为解决方法,我可以通过使用 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 的 ant 任务。