Webサービスエントリのケース2:wsimportコマンドを使用してWebサービスクライアントインターフェイスを生成します

1. wsimportコマンドを使用して、Webサービスのクライアント・インターフェースを生成します

1.1wsimportコマンドツール

 インストールしたjdkのbinフォルダーには、wsimport.exeがあります。このツールは、wsdlファイルに基づいて対応するクラスファイルを生成し、これらのクラスファイルを使用して、ローカルクラスを呼び出すのと同じようにWebServiceによって提供されるメソッドを呼び出します

このツールは、C#で記述されたWebServiceなどの非Javaサーバーに使用でき、Javaクライアントの実装はwsimportを介して生成されます。

1.2wsimportを使用してWebサービスクライアントコードを生成する思考プロセス

1. wsimportコマンドを使用する前に、サービスを実行する必要があります。

2.一般的なルート優先度データアドレスジェネレーターwsdlクライアントコード;

      2.1生成されたソースファイルの指定されたパス、パッケージ名、およびパッケージパスは変更できます。自分のプロジェクトに直接コピーできるように、小さな仕様を作成することをお勧めします

     2.2サービスクラス:生成されたソースファイルで重要なのは、javax.xml.ws.Serviceのサブクラス、つまりXXXServiceのような形のServiceで終わるクラスを継承することであり、getXXXPort()メソッドは対応するものを返します。インターフェース。

     2.3プロキシオブジェクト:サービスクラスでは、オブジェクトが呼び出されるメソッドに渡されます。これがsayHelloNameメソッドです

3.インターフェースが原因で、操作の結果を待つのに長い時間がかかる場合がありますが、これは通常の状況です。

 

2ケース操作

2.1サーバーの起動

サーバーコードは、前の記事で記述されたサーバーを使用してサーバーを起動し、サーバーを最初に実行する必要があります

2.2サーバーによって公開されたwsdlアドレスに従ってコードを生成する

jdkは環境変数で構成されているため、cmdの任意のウィンドウでwsimportxxxxコマンドを入力する限り。

win + r cmdコマンドウィンドウを開き、次のように入力します。wsimport-s "d:/ ws-111 /" -p "com.bonc.ws.client.webservice" "http:// localhost:8002 / ws-demo?wsdl "、ファイル生成パス、パッケージ名、およびパッケージパスは自由に変更できます。

エクスプローラーを開きます。D:\ ws-111 \ com \ bonc \ ws \ client \ webserviceディレクトリで、一連のJavaファイルが生成されていることがわかります。

2.3生成されたcom \ bonc \ ws \ client \ webserviceパッケージをプロジェクトにコピーします。2つの主要なカテゴリです。

(1)javax.xml.ws.Serviceのサブクラスを継承するPersonServiceクラスには、パラメーターのないgetXXXPort()メソッドがあります。これは@WebEndpoint、つまりgetPersonPort()メソッドによって識別され ます。

(2)PersonServiceクラスのgetXXXPort()メソッドによって返されるタイプに対応するインターフェイス、つまりスピーカーインターフェイス。

 

2.4クライアントがサーバーを呼び出す

package com.bonc.ws.client;

import com.bonc.ws.client.webservice.PersonService;
import com.bonc.ws.client.webservice.Speaker;

/**
 * @ClassName: Test
 * @Description: TODO
 * @Author: liujianfu
 * @Date: 2021/03/18 11:48:48 
 * @Version: V1.0
 **/
public class Test {
    public static void main(String args[]){
        //1.创建service
        PersonService service = new PersonService();
        //2.获取代理对象
        Speaker speaker = service.getPersonPort();
        //3.调用服务端方法
        String str = speaker.sayHello("JURF");
        System.out.println(str);

    }
}

演算結果:

参照アドレス:https//blog.csdn.net/BeauXie/article/details/52869870

 

 

 

おすすめ

転載: blog.csdn.net/u011066470/article/details/114986882