3

この投稿を使用して、maven でxewという名前の wsimport/xjc プラグインを正常に使用しました。

現在、私の会社でこれに Maven を使用することはできないため、Java 7 SDK の wsimport ユーティリティを使用しようとしています。

WSDL をインポートするときに xew xjc プラグインを含めるように wsimport に指示するにはどうすればよいですか?

私の現在のコマンドラインは次のとおりです。

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 に答える