Webサービス発行

 

GLUEによる、Webサービスの発行

GLUEを用いて、Webサービスを発行するのは非常に簡単である。理由としていくつかあるが、大きな理由としては、GLUE単体でWebサービスを発行する機能を持ち合わせていることと、その機能を利用するためのGLUEのAPIが、「シンプルで使いやすい」ことが理由だ。


発行に必要な機能

GLUEを利用してWebサービスを発行するために必要なことは、以下の2つの機能をjavaのコンソールプログラム (サーバークラス) 内に追加し、実行するだけで完了する。

1 HTTPサーバーを起動する。
2 起動したHTTPサーバー上に、Webサービスを公開する

この2つの機能はたった2行のコードで実現されるのである。 実際のクラスを用いて説明しよう。

発行するクラスの作成

では、PublishHelloというサーバークラスを用意し、実際にどのようにして上記2つの機能が2行で実装されるか示そう。

サーバークラス: PublishHello.java

1: /* * PublishHello Class * */
2: import electric.server.http.HTTP; // HTTPクラスのインポート
3: import electric.registry.Registry; // Registryクラスのインポート

4: public class PublishHello {
5:  public static void main( String[] args ) throws Exception
6:  {
7:   HTTP.startup( "http://localhost:8020/glue" ); // httpサーバーの起動。
8:   Registry.publish( "hello", new Hello() ); // Helloを公開する
9:  }
10:}

このクラスはmainメソッド内に、2行しかコードを持たない。しかし、このクラスを実行するだけで以下のことが行われる。

1 「http://localhost:8020/glue」というURLで、HTTPサーバーが起動する (7行目)
2

「http://localhost:8020/glue/hello」というURLで、Helloクラスの機能が公開される (8行目)

3 「http://localhost:8020/glue/hello.wsdl」というURLで、HelloクラスのWSDLが自動的に生成される。

Webサービスとして公開する上で必要な、上記の3つの機能が、たった2行のコードを実装するだけで行われるわけである。 あとは、このクラスを実行し確認をしてみよう。


サーバークラスの実行と確認

サーバークラスはコンパイルして、javaコマンドで、実行していただくだけで完了だ。実行したログを表示しておこう。

C:\tutorial>java PublishHello
GLUE standard 2.3.1 (c) 2001-2002 The Mind Electric
http server started on http://127.0.0.1:8020/glue

上記のように表示され、コマンドのプロンプトが戻ってこなければ正常に起動されているはずである (上記で表示しているIPアドレスはみなさんの環境毎に変わる)。この後、自動的に生成されているであろう「WSDL」にアクセスし、正常に表示されれば「Webサービスの発行」は終了である。

では、最後にWSDLを確認しよう。


生成されたWSDLの確認

 自動的に生成されるWSDLのURLは、Webサービスを公開するURL (エンドポイント) + .wsdlというURLで自動的に公開される。このチュートリアルでは、

http://localhost:8020/glue/hello

というURLで公開しているので、生成されたwsdlのアドレスは

http://localhost:8020/glue/hello.wsdl

でアクセス可能になる。

では、確認してみよう。Internet Explorer (HTTP上に公開されているXMLを表示できるものであればなんでもかまわないが) を起動し、wsdlのURLを入力してみよう。

このようにWSDLが表示できれば完了だ。

  Webサービスの公開が終了したので、次はこの公開したWebサービスを利用することにする。

Webサービスの利用->


もどる

Copyright © XMLコンソーシアム 2002 All rights reserved.
copyright © 2000-2002 tocka, inc., tokyo, japan / all rights reserved