Web サービスの作成
Java 講座らしく、ここでは単純な Web サービスを実際に実装してみることで Java による Web サービスを学びましょう。
単純な Web サービスクラスの作成
JAX-WS による単純な Web サービスの実装は次のようになります。ここでは Calc1 というクラスを定義しています。 メソッドは add という足し算をするだけのメソッドです。(もちろん、現実世界で足し算をするだけのために Web サービスを呼ぶ人はいませんが、 ここは Java 入門、Java 講座としてのサンプルコードです)
package com.keicode.java.test; import javax.jws.*; @WebService public class Calc1 { public double add( @WebParam(name="x") double x, @WebParam(name="y") double y ) { return x + y; } }
テスト用のサーバーの作成
それでは、上記の Web サービスを公開しましょう。JDK には開発した Web サービスを簡単に試すための仕組みがあります。
package com.keicode.java.test; import javax.xml.ws.*; public class Calc1Server { public static void main(String[] args) { Endpoint.publish( "http://localhost:8888/WebServices/calc1", new Calc1() ); } }
上記をコンパイルするとテストプログラムが作成されます。
> java com.keicode.java.test.Calc1Server Apr 20, 2010 3:11:07 PM com.sun.xml.internal.ws.model.RuntimeModeler getRequestWrapperClass INFO: Dynamically creating request wrapper Class com.keicode.java.test.jaxws.Add Apr 20, 2010 3:11:07 PM com.sun.xml.internal.ws.model.RuntimeModeler getResponseWrapperClass INFO: Dynamically creating response wrapper bean Class com.keicode.java.test.jaxws.AddResponse
WSDL の確認
上で作成した Web サービスの WSDL を取得しましょう。
WSDL は上記コード内で指定した URL に ?wsdl を付けた URL で取得できます。