|
||||||||||||||||||||||
|
ホーム > Web サービス - JAX-WS > Web サービス・クライアントの作成 Web サービス・クライアントの作成Web サービスへのプロキシクラスの作成> wsimport -keep -p com.keicode.java.test.calc1server http://localhost:8888/WebServices/calc1?wsdl parsing WSDL... generating code... compiling code... > 上記コマンドを実行すると、calc1server というディレクトリが作成され、その中に java ソースコードと *.class ファイルが作成されます。 ディレクトリ calc1server は wsimport コマンドにて指定したターゲットパッケージ名に従って作成されます。
クライアントの作成Web サービスをラップするクラスは上記の wsimport コマンドで作成されます。 クライアントからは wsimport が作成したクラスを利用して、以下のように呼び出せば OK です。 import com.keicode.java.test.calc1server.*; public class Calc1Client { public static void main(String[] args) { double x = 1, y = 2; Calc1Service svc = new Calc1Service(); Calc1 port = svc.getPort( Calc1.class ); System.out.format( "%.1f + %.1f = %.1f", x, y, port.add( x, y ) ); } } 実行結果は次のとおりです。 1.0 + 2.0 = 3.0 単なる足し算ですから、結果が当たり前すぎてちょっとわかりにくいので、Web サービスを停止して、 エラーが発生することを確認しましょう。 Web サービスを停止してエラーが発生するのであれば、 それは確かに実行時に Web サービスに問い合わせているといえますよね。
> java Calc1Client
Exception in thread "main" javax.xml.ws.WebServiceException: Failed to access
the WSDL at: http://localhost:8888/WebServices/calc1?wsdl. It failed with:
Connection refused: connect.
at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.tryWithMex(...
at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.parse(Runti...
at com.sun.xml.internal.ws.client.WSServiceDelegate.parseWSDL(WSServ...
at com.sun.xml.internal.ws.client.WSServiceDelegate.
その結果、確かに上記のようなエラーが発生しました。 ホーム > Web サービス - JAX-WS > Web サービス・クライアントの作成 |
|
© 2010 Java 入門 |
|||||||||||||||||||