2

私は今、Web サービスについて独学で学び、helloWorld を実行しようとしています。すべての Web サービスをセットアップするには、apt を実行する必要があると思います。

私はこのように実行しています:

apt HelloImpl.java -classpath /<path>/jsr181-api.jar

しかし、警告が表示されます (以下を参照)。注釈プロセッサも指定する必要がありますか? apt コマンドはいくつかのファイルを生成することになっていると思いますが、それは起こっていません (.c​​lass ファイルを生成するだけです)。助けてくれてありがとう。

警告:

warning: No annotation processors found but annotations present.
1 warning

コード:

package server;

import javax.jws.WebService;

@WebService
public class HelloImpl {

  /**
   * @param name
   * @return Say hello to the person.
   */
   public String sayHello(String name) {
     return "Hello, " + name + "!";
   }
}

おまけの質問: apt は何をしますか? javacを呼び出すと思いますか?注釈プロセッサも呼び出すことになっていますか?

更新:私がフォローしているチュートリアルには次のように書かれています:

The next step is to run apt on the above Java code, resulting in several artifacts:

HelloServiceImpl.wsdl
schema1.xsd
classes/server/HelloImpl.class
classes/server/jaxrpc/SayHello.class
classes/server/jaxrpc/SayHelloResponse.class
classes/server/jaxrpc/SayHello.java
classes/server/jaxrpc/SayHelloResponse.java

これが apt が生成すべきものだと思います (正しい引数を渡すと仮定します)。ただし、注釈プロセッサ(?)を渡す必要があると思います。ただし、デフォルト(Webサービス注釈プロセッサ)を使用したいだけです。

更新 2 : asant または wsgen を使用する必要がありますか? 私は見ましたが、私のマシンにはこれらのいずれもありません..何か調べる必要があります..おそらく、私が使用している/使用していたチュートリアルが間違っています。asant リファレンスへのリンクは次のとおりです: http://java.sun.com/webservices/docs/2.0/tutorial/doc/JAXWS3.html

4

1 に答える 1

1

aptコンパイラではありません。ソース ファイルを処理し、必要に応じて注釈プロセッサを呼び出します。

はじめにを引用するには...

コマンドライン ユーティリティ apt (注釈処理ツール) は、検査対象の指定されたソース ファイルのセットに存在する注釈に基づいて、注釈プロセッサを見つけて実行します。

ソース ファイルに対して apt を実行して、ビルド時に新しいソース ファイルまたはメタデータ ファイルを生成する場合があります。apt 経由javacで実行できます。

Java のアノテーションは、複数の目的に使用できます。ビルド時にすべてを処理する必要はありません。一部は、ロード時にクラスを変換するためにインストルメンテーションを介して使用できるマーカーとして機能します。ほとんどは、イントロスペクション ツール (多くのコンテナーや依存関係インジェクターなど) で使用できるランタイム マーカーでのみ使用されます。注釈を正確にどのように使用するかは、それが由来する API によって異なります。JEE5 チュートリアルでは、注釈の使用方法について説明していますWebService

于 2010-01-19T19:56:42.480 に答える