web-services - wsgen/apt(ant 任务)工具的最佳替代方法是使用 ant for jdk 1.8 生成 wsdl

标签 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。以下是我找到的唯一链接,其中包含有关如何为其执行 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 任务的代码片段:

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

最佳答案

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

    com.sun.tools.ws.ant.WsGen  

前段时间适配了新的注解处理API。升级 JAX-WS 应该可以解决该问题。

关于web-services - wsgen/apt(ant 任务)工具的最佳替代方法是使用 ant for jdk 1.8 生成 wsdl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29103387/

相关文章:

java - 测试时持久性不同

java - 如何定义一个以透明方式拦截所有服务的全局 JAX-WS MessageHandler?

java - 我应该在哪里存储我的 java 应用程序访问第三方服务的凭据?

c# - 来自 WPF 的异步 Web 服务请求

java - spring + tomcat + axis2 == jax-ws 网络服务?

ant - 使用 <macrodef> 和 exec 的参数数量可变

java - 如何安装 Apache Ant?

java - SchemaValidation在MTOM文件上传中带来ClassCastException和OutOfMemoryError

web-services - GATE 嵌入式运行时

c# - 是否可以使用基本 HTTP 请求来使用 XML RPC 服务?