3

現在の Web サービスの実装は、Jax-ws、ant、および jdk-1.7 で正常に動作します。私の要件は、jdk 1.7 から jdk 1.8 に移行することです。しかし、ビルドに jdk 1.8 を使用している場合、ant タスク wsgen を使用して wsdl を生成するとエラーが発生します: java.lang.NoClassDefFoundError: com/sun/mirror/apt/AnnotationProcessorFactory

Web 検索で、jdk 8 は apt ツールをサポートしなくなりました。注釈処理 API に移行する必要があります。以下は、Ant タスクを作成して実装する方法に関する適切なガイダンスが記載された唯一のリンクです。

https://jax-ws.java.net/nonav/2.2.6/docs/ch04.html#tools-annotation-processing-ant-task

しかし、これを使用してすべてのコンパイルの問題を解決すると、宛先の場所にファイルが生成されます。また、このプロセスでは wsdl の作成がサポートされていないようです。

私の完全なビルド/Web サービス プロセスは、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> 
4

1 に答える 1

3

どの JAX-WS バージョンを使用していますか? の実装

    com.sun.tools.ws.ant.WsGen  

少し前に新しいアノテーション処理 API に適応されました。JAX-WS をアップグレードすると、問題が解決するはずです。

于 2015-03-18T17:12:24.410 に答える