【问题标题】:What is best alternative to wsgen/apt (ant task) tool to generate wsdl using ant for jdk 1.8使用 ant for jdk 1.8 生成 wsdl 的 wsgen/apt(ant 任务)工具的最佳替代品是什么
【发布时间】:2015-03-17 15:38:53
【问题描述】:

我当前的 Web 服务实现在 Jax-ws、ant 和 jdk-1.7 上运行良好。我的要求是从 jdk 1.7 迁移到 jdk 1.8。但是当我使用 jdk 1.8 构建时,使用 ant 任务 wsgen 生成 wsdl 时出现错误:java.lang.NoClassDefFoundError: com/sun/mirror/apt/AnnotationProcessorFactory

网上搜索发现,jdk 8 不再支持apt工具,需要迁移到注解处理API。以下是我找到的唯一链接,其中包含有关如何为其设置和实施 ant 任务的适当指导。

https://jax-ws.java.net/nonav/2.2.6/docs/ch04.html#tools-annotation-processing-ant-task

但是当我使用它并解决了所有编译问题时,现在在目标位置生成了文件。在此过程中似乎也不支持创建 wsdl。

我的完整构建/网络服务过程依赖于 apt/wsgen/wsimport。如何正确地将它们迁移到 jdk 1.8 中?

是否有任何适当的文档或链接可以解决?

下面我的wsgen任务的代码sn-p:

<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> 

【问题讨论】:

    标签: web-services ant jax-ws java-8 wsgen


    【解决方案1】:

    您使用的是哪个 JAX-WS 版本?实现

        com.sun.tools.ws.ant.WsGen  
    

    不久前已适应新的注释处理 API。升级 JAX-WS 应该可以解决该问题。

    【讨论】:

    • 我使用的是 JAX-WS 2.0 ,升级到 2.2.10 后,wsdl 生成问题解决了。但是在使用 wsimport 从 wsgen 创建的 wsdl 生成客户端时,我收到以下错误.. javax.xml.validation.SchemaFactoryConfigurationError: Provider for class javax.xml.validation.SchemaFactory can be created
    • 能否提供数据(java、wsdl?)来重现问题?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-12
    • 2020-06-05
    相关资源
    最近更新 更多