无法创建 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 任务。