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