【JAX-WS】 wsimportコマンドによる Web サービス・クライアントの作成

■ はじめに

 * Webサービスにアクセスできるクライアント側の処理を作成する
 * なお、Webサービスには以下の関連記事のものを使い、サービスを立ち上げておくこと
http://blogs.yahoo.co.jp/dk521123/36128161.html

■ クライアント側作成方法

[1] コマンドプロンプトを立ち上げ、wsimportコマンド(以下「wsimportコマンド」を参照)を実行し、
    クライアント側のコードを自動生成する
[2] [1]の自動生成コードを使って、クライアント側を実装する(以下「サンプル」を参照)

■ wsimportコマンド

 * 詳細は以下の公式サイトを参照
https://docs.oracle.com/javase/jp/8/docs/technotes/tools/unix/wsimport.html

構文

wsimport -keep -p [パッケージ名] [WSDLファイルがあるURL]

wsimport -keep -p com.sample.webservice.client.stub http://localhost:8080/SampleWeb/services/SampleWebMainService?wsdl

以下のファイルが自動生成される
 + com.sample.webservice.client.stub.GetSampleEntity.java
 + com.sample.webservice.client.stub.GetSampleEntityResponse.java
 + com.sample.webservice.client.stub.ObjectFactory.java
 + com.sample.webservice.client.stub.SampleEntity.java
 + com.sample.webservice.client.stub.SampleWebMain.java
 + com.sample.webservice.client.stub.SampleWebMainService.java

■ サンプル

Main.java

import java.net.MalformedURLException;
import com.sample.webservice.client.stub.SampleEntity;
import com.sample.webservice.client.stub.SampleWebMain;
import com.sample.webservice.client.stub.SampleWebMainService;

public class Main {

  public static void main(String[] args) throws MalformedURLException {
    SampleWebMainService service = new SampleWebMainService();
    SampleWebMain stub = service.getSampleWebMainPort();
    SampleEntity result = stub.getSampleEntity("Ken");
    System.out.println("Result : " + result.getName());
  }
}


関連記事

Axis2Eclipse を使ったWebサービスでクラスをやり取りするには...

http://blogs.yahoo.co.jp/dk521123/36128161.html

WCF ~ WCFJavaクライアントでアクセスする ~

https://blogs.yahoo.co.jp/dk521123/37962361.html