3

我刚刚使用这篇文章成功地使用了一个名为xew的 wsimport/xjc 插件和 maven 。

在我的公司为此使用 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 参数:no such JAXB option: -Xxew. xew 插件和 jaxb-xjc.jar 位于工作目录和系统 CLASSPATH 中。

4

1 回答 1

1

我继续使用 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>
于 2014-02-15T00:06:51.260 回答