.NET Framework SDKで始める.NETプログラミング(前編)
10.Hello World展覧会(7)
- Webサービス -
デジタルアドバンテージ 遠藤孝信
2001/02/10 |
|
Webサービス版Hello World
次はWebサービス版のHello Worldである。といっても、WebサービスはSOAP/XMLインターフェイスを持つコンポーネントであり、それ自体はユーザー・インターフェイスを持たない。したがってWebサービス版のHello
Worldプログラムとしては、クライアントのプログラムに対して“Hello World”の文字列を返すだけのものを作る。すぐ次で述べるWebアプリケーション版のHello
Worldにおいて、このWebサービスを呼び出し、得られた文字列をブラウザに表示することにする。
以下がWebサービス版Hello Worldのソース・リストである。
1: // helloservice.asmx
2:
3: <%@ WebService Language="C#" Class="HelloClass"
%>
4:
5: using System;
6: using System.Web.Services;
7:
8: public class HelloClass {
9: [WebMethod]
10: public String HelloService() {
11: return "Hello Web Service World!";
12: }
13: } |
|
Webサービス版Hello Worldのソースコード |
|
3: |
このファイルがWebサービスを記述したもので、言語にはC#を用いており、公開するメソッドがHelloClassクラスに含まれていることを指示する。 |
|
6: |
WebMethod(9行目)のためのネームスペース。 |
|
8: |
今回は“HelloWorld”クラスを作成する。 |
|
9: |
Webサービスとして公開したいメソッドに対して、この[WebMethod]属性を指定する。 |
|
10: |
公開されるWebサービスの名称。 |
|
11: |
クライアントに対して、文字列を返す。 |
|
Webサービスは拡張子.asmxのファイルとして作成する。コンパイルする必要はない。URLを指定してアクセスできるように(「http://〜/helloservice.asm」という形式でWebブラウザからアクセスできるように)、IISのディレクトリにファイルを配置するだけである。Webサービスのプログラムは、最初にアクセスされたときに、これを管理するASP.NETによってコンパイルされ実行される。
Webサービスといっても、通常のプログラムと比べて特別な処理はほとんど必要ない。具体的には、文字列を返す通常のメソッドに[WebMethod]属性を付けるだけである。ただし、この属性が使用するネームスペースを指定する必要がある(6行目)。
またファイルの先頭で、このファイルがWebサービスを記述したものであることを示すWebServiceディレクティブ(directive:「指示」の意味)が必要となる。3行目がそれで、ここではWebサービスとして公開するメソッドはC#で記述され、クラスHelloClassに含まれていることを示している。この行だけは特別だが、それ以外の部分は通常のC#のソースコードだ。
Webブラウザでこの.asmxファイルにアクセスすると、次のようなWebサービス用のテスト・ページが表示される。
|
Webサービスのテスト・ページ |
IISのディレクトリに配置されたWebサービスの.asmxファイルをWebブラウザで表示すると、このようなテスト・ページが表示される。上端にクラス名(“HelloClass”)が表示されていることが分かる。
|
|
|
このWebサービスが含まれるクラスの名称。 |
|
|
Webサービスの起動ボタン。このボタンをクリックすると、Webサービスが実行され、今回の例では、文字列が返される。 |
|
このテスト・ページの下部に配置された[Invoke]ボタンをクリックすると、Webサービスを実行することができる。今回のWebサービスは“Hello
Web Service World!”という文字列を返すので、ブラウザにこの文字列が表示されるはずだ。[Invoke]ボタンをクリックした結果は次のとおりである。
|
上のテスト・ページで[Invoke]ボタンをクリックしたところ |
テスト・ページで[Invoke]ボタンをクリックすると、Webサービスが実行される。今回のWebサービスは、“Hello
Web Service World!”という文字列を返すので、この文字列がXML形式にエンコードされてWebブラウザに表示される。
|
画面から、“Hello Web Service World!”という文字列がXML形式にエンコードされて送られていることが分かる。
更新履歴 |
【2001.2.11】本ページの冒頭にある「Webサービス版Hello Worldのソースコード」として、誤って他ページのソースコードと同一のものが掲載されていました。お詫びし、正しいソースコードに訂正させていただきます。 |
|
Insider.NET 記事ランキング
本日
月間