私はJavaやEclipseなどを使用したWebサービスプログラミングについて読んでいますが、その人が次のようにしてWebサービスとクライアントを作成した特定の例を見つけました。
- WebサービスのJavaクラスを定義します(インターフェース+ impl)
- Endpoint.publishを使用してWebサービスをデプロイします
- WebサービスのURLからwsdlを取得します(例:localhost://greeting?wsdl)
- wsimportを使用してスタブを生成します
- 生成されたスタブを使用してクライアントクラスを作成する
Webサービスを公開してダウンロードせずにwsdlを生成する別の方法はありますか?おそらく、wsdlとクライアントスタブを自動生成するためのMavenプラグインですか?
更新:新しい質問を作成するのではなく、これに便乗します。
インターフェイスを定義してWebサービスを作成しました。
@WebService
public interface HelloWorldWs {
@WebMethod
public String sayHello(String name);
}
およびimplクラス:
@WebService(endpointInterface = "com.me.helloworldws.HelloWorldWs")
public class HelloWorldWsImpl implements HelloWorldWs {
@Override
@WebMethod
public String sayHello(String name) {
return "Hello World Ws, " + name;
}
}
wsgenを実行すると、次のエラーが発生します。
The @javax.jws.WebMethod annotation cannot be used in with @javax.jws.WebService.endpointInterface element.
Eclipseはそれで大丈夫のようです。
なぜですか?
もともとアノテーションがなかったのですが、Webサービスを呼び出そうとすると、次のエラーが発生しました。
com.me.helloworldws.HelloWorldWsImpl is not an interface