2012-02-05 10 views
4

wsgenまたはaptを使用してJDK 7でWebサービス成果物を生成するときは、コマンドを使用します。警告メッセージ次JDK 7または6でdeprecated wsgenまたはaptをjavacを使用して置き換えるにはどうすればよいですか?

wsgen -s src -cp CLASS_PATH -d OUTPUT_DIRECTORY com.sun.WebServiceSEI 

ディスプレイ

JDK 7以降推奨されておらず、次の主要なJDKで削除される予定ですcom.sun.mirrorパッケージに含まれているaptツールとそれに関連するAPIリリース。アノテーションを処理するには、javacツールで使用できるオプションと、javax.annotation.processingおよびjavax.lang.modelパッケージに含まれるAPIを使用します。

wsgenまたはaptを使用せずにこの警告を削除するには、どうすればWebサービス成果物を生成できますか?

+0

あなたはSunで働いていますか?もしそうでなければ、SEIを 'com.sun'パッケージに入れることにしたのはなぜですか? –

+0

ディレクトリ構造com.sunのパッケージはwsgenで動作しませんか?私はサンプルsei com.sun.WebServiceSEIを提供しました。私の質問は何か違うのですか?私の質問にお答えできますか? – Baha

答えて

1

WsgenToolクラスがcom.sun.mirror.aptパッケージのクラスを使用しているため、警告が生成されますが、これはJDK7では廃止されているようです。 JAX-WSチームは、このAPIを使用しないjaxws-riをリリースする予定ですが、JDK8リリースに近いところで発生する可能性があります。

+0

しかし、私はJDK 7に同梱されているwsgenを使用しています。 – Baha

+1

AFAIK、 'wsgen'はJDKの一部ではありません。 JAX-WSはSEIからWSDLを生成することができるので、間違いかもしれません...とにかくwsgenの部分が更新されていないようです。 'wsgen'を実行するときのクラスパスは何ですか? –

+1

JDK 7のアップデート1のwsgen.exeをJDK_HOME \ binフォルダから使用しています。 私のクラスパスにはjaxws-ri 2.2.5 libariesがあります。しかしSEIをコンパイルするときにwsgenを実行すると、これらのライブラリはクラスパスにはありません。 私はとても便利なリンクhttps://blogs.oracle.com/darcy/entry/apt_endingとhttps://blogs.oracle.com/darcy/entry/the_passing_of_aptに出会ったばかりです。 これらのリンクは、jax-wsの一部がjdkにあり、将来のjdk8からaptを削除するための変更をコミットしたことを示しています。 jdk 7からaptを削除するかどうかまだ分かりません。 – Baha

0

恐れ入りますが、恐れ入りますが、あなたができることは、あなたのために働いていた古いJDKに切り替えることです。それが最善の策です。

2

javacが代わりです。彼らはプラグイン可能な注釈処理システムをjavac(JSR 269:Pluggable Annotation Processing API)に追加しました(Java 6と思います)。探しているアノテーションプロセッサはjaxws-tools.jar(Metroダウンロード)にあります。クラスパス上にそのjarファイルがあれば、-processor com.sun.tools.ws.processor.modeler.annotation.WebServiceApオプションを指定してjavacを実行できるはずです。 Antタスク、com.sun.tools.ws.ant.AnnotationProcessingTaskもあります。彼らはここでそれについて少し話しますhttp://jax-ws.java.net/nonav/2.2.6/docs/ch04.html#tools-annotation-processingしかし、実際にそれを説明していません。たぶん必要なアノテーションプロセッサがJDKに同梱されているかもしれませんが、もしそうなら、私はそれを見つけることができませんでした。

関連する問題