什么是使用ant为jdk 1.8生成wsdl的wsgen / apt(ant任务)工具的最佳替代方法

时间:2015-03-17 15:38:53

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

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

在网络搜索上发现,jdk 8不再支持apt工具,需要迁移到注释处理API。以下是我发现的唯一链接,其中包含有关如何为其执行任务和实施的正确指导。

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任务的代码片段如下:

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

1 个答案:

答案 0 :(得分:3)

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

    com.sun.tools.ws.ant.WsGen  

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