java - wsimport/xjc 命令行插件

标签 java web-services jaxb wsimport jaxb-xew-plugin

我刚刚成功使用了名为 xew 的 wsimport/xjc 插件使用 Maven,使用 this邮政。

在我的公司目前无法为此使用 Maven,因此我正在尝试使用 Java 7 SDK 中的 wsimport 实用程序。

我如何告诉 wsimport 在导入我的 WSDL 时包含 xew xjc 插件?

我当前的命令行是:

wsimport -Xdebug -s src\main\java -d target\classes -extension -B-extension -B-classpath target\dependency\*:. -B-Xxew:instantiate lazy -B-Xxew:delete src\main\java\test.wsdl

它不会吃掉 -B 参数:没有这样的 JAXB 选项:-Xxew。 xew 插件和 jaxb-xjc.jar 在工作目录和系统 CLASSPATH 上。

最佳答案

我继续使用 Ant 将我的 WSDL 转换为代码。为此,我下载了 jaxws-ri 版本 2.2.8 并提出了以下有效的 Ant 脚本。现在我可以使用 maven-antrun-plugin 来调用脚本了。

<project>

    <property name="jaxws.home" location="lib/jaxws-ri" />

    <path id="jaxws.classpath">
        <fileset dir="${jaxws.home}/lib" includes="jaxws-tools.jar" />
    </path>

    <taskdef classpathref="jaxws.classpath" name="wsimport" classname="com.sun.tools.ws.ant.WsImport" />

    <wsimport keep="true" sourcedestdir="src/main/java" destdir="target/classes" extension="true" wsdl="src/main/java/test.wsdl">
        <xjcarg value="-cp" />
        <xjcarg file="lib/commons-logging-api-1.1.jar" />
        <xjcarg value="-cp" />
        <xjcarg file="lib/jaxb-xew-plugin-1.1.jar" />
        <xjcarg value="-Xxew" />
        <xjcarg value="-Xxew:instantiate lazy"/>
        <xjcarg value="-Xxew:delete"/>
    </wsimport>

</project>

关于java - wsimport/xjc 命令行插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21789317/

相关文章:

java - 从 Visual Source 安全 check out 的 Ant 目标

ios - 代码优化在 ios Swift 中不起作用?

java - 如何将 java.time.Duration 映射到 XML

c++ - 编写简单的 WSO2/C++ Web 服务客户端时崩溃

asp.net - 升级到 TLS 1.2 后无法生成 Web 服务引用

java - JAXB - 将元素绑定(bind)到 Set 而不是 List

java - JAXB - 如何序列化集合子类中的字段

java - 使用 Java/JavaCC 解析 RTF 文档

java - XML 编码 + 项目结构

java - Android - 计算每个缩放级别的 map 距离,例如 Gmaps 比例尺