3

構築しているJavaWebアプリケーション内でいくつかのWebサービスメソッドを呼び出す必要があります。

たとえば、ユーザーがサインアップするたびに、newUserJavaを介してWSDLURLでメソッドを呼び出したいと思います。リクエストでいくつかのパラメータを渡す必要があります。

これを簡単にする組み込みのJavaクラス、または公開されているクラスはありますか?つまり、URLとパラメーターを指定するだけで、要求を実行して応答を返しますか?

そうでない場合、JavaアプリケーションのWSDLでWebサービスを呼び出す標準的な方法は何ですか?

4

1 に答える 1

10

デプロイされたWSDLURLでwsimportを実行します。JDKから実行できます。

wsimport -p client -keep http://localhost:8080/calculator?wsdl

このステップでは、いくつかのクラスを生成してコンパイルします。-keepスイッチに注意してください。生成されたJavaソースファイルを保持するために必要です。

Calculator.java-サービスエンドポイントインターフェイスまたはSEICalculatorService-
生成されたサービス、インスタンス化

public class MyClientServiceImpl {
    public static void main(String args[]){

    @Override
    public Integer add(int a , int b) {
       CalculatorService service = new CalculatorService();
       Calculator calculatorProxy = service.getCalculatorPort();            
        /**
         * Invoke the remote method
         */
        int result = calculatorProxy.add(10, 20);
        System.out.println("Sum of 10+20 = "+result);
    }
}

Java EE 6でサポートされているコンテナを使用している場合は、次のように使用できます。

public class MyClientServiceImpl implements MyClientService {

    @WebServiceRef(wsdlLocation = "http://localhost:8080/calculator?wsdl", 
value = CalculatorService.class)
    private Calculator service;

    @Override
    public Integer add(int a , int b) {
        return service.add(a,b);
    }
}
于 2013-03-03T16:14:32.817 に答える