特集:効率的なデータベース開発の実践

DBアクセス用のXML Webサービスとは?

初音玲
2009/02/06

XML Webサービス開発の基本

XML Webサービスの作成

 Visual Studioでは、XML WebサービスはWebサイトを作成するときと同じ手順で作成できる。

(1)XML Webサービスを新規に作成する

 XML Webサービスの新規作成は、IDEのメニュー・バーから[ファイル]−[新しいWebサイト]を実行することで表示される[新しい Web サイト]ダイアログから行う。

図2 新しいWebサイトの作成
本稿では、ダイアログ右上で設定する対象フレームワークを「.NET Framework 2.0」とした。

 [新しい Web サイト]ダイアログの[テンプレート]から「ASP.NET Webサービス」を選択して、XML Webサービスのプロジェクトを作成する。

 Visual Studio 2005以降ではASP.NET開発用Webサーバが付属しているので、開発環境ではこれを利用するようにすればいろいろな作業が簡単になる(もちろん、開発が完了したら[発行]を行って任意のWebサーバに配置できる)。実際に開発用サーバを利用するには、[場所]コンボボックス(=「ファイル システム」「HTTP」「FTP」という選択肢がある)から「ファイル システム」を選択して、IDEを動かしているPCのローカル・フォルダを指定するだけだ(本稿ではCドライブ上の「SimpleService」というフォルダを指定した)。

 最後に[新しい Web サイト]ダイアログの[OK]ボタンをクリックしてプロジェクトを作成すると、次の画面のようなプロジェクトが作成される。

図3 「ASP.NET Webサービス」プロジェクトの初期構成([ソリューション エクスプローラ]ウィンドウ)

 App_CodeフォルダはASP.NETにとって特別なフォルダで、この中にある.vbファイルにコードを記述する。

 ルート・フォルダには、XML Webサービスのアクセス・ポイントとして.asmxファイルが作成されている。このファイルでは@WebServiceディレクティブが次のように記述されているため、このファイルをURLに指定してXML Webサービスを呼び出すと、App_CodeフォルダのService.vb(CodeBehind属性で指定)で定義されているServiceクラス(Class属性で指定)に接続される。

<%@ WebService Language="vb" CodeBehind="~/App_Code/Service.vb" Class="Service" %>
Service.asmxファイルの内容

(2)Webメソッドの作成

 それでは、このServiceクラスに実装されたXML Webサービスが提供する機能を見ていこう。

 WebService属性(WebServiceAttribute)の付いたクラスはXML Webサービスとなり、そのクラス内のPublic SubやPublic Functionなどのメソッドのうち、WebMethod属性(WebMethodAttribute)が付いたものがWebメソッドとなる(XML Webサービスを利用するクライアント・プログラムからは、このWebメソッドを通常のメソッドと同じように呼び出せる)。

 ここではまず、XML WebサービスやWebメソッドに日本語の説明を付けておこう。自動生成された初期クラス「Service」のWebService属性や、その中にある「HelloWorld」メソッドのWebMethod属性にDescriptionプロパティ(=説明記述)を追記する。次のコードの太字部分が追記した個所だ。

Imports System.Web
Imports System.Web.Services
Imports System.Web.Services.Protocols

<WebService(Namespace:="http://com.wankuma.hatsune.itmedia/", _
            Description:="ここにClassの説明を入れます")> _
<WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Public Class Service
    Inherits System.Web.Services.WebService

  <WebMethod(Description:="ここにWebMethodの説明を入れます")> _
  Public Function HelloWorld() As String
    Return "Hello World"
  End Function

End Class
HelloWorldメソッドへのDescription(=説明)の追記(Service.vbファイル)
ちなみにWebService属性のNamespaceプロパティも変更している。このNamespaceプロパティにより、XML Web サービス「Service」がどのXML名前空間に所属するかが指定される。

 この状態で、XML Web サービスをデバッグ実行してみよう。

(3)XML Webサービスのデバッグ実行

 新しいWebサービスを作成して初めて実行するときには、次の[デバッグが無効です]ダイアログが表示される。ここで、開発環境で実行している場合は迷わず[デバッグを有効にするために Web.Config ファイルを変更する]オプションを選択する。これによりデバッグ実行が有効になる。

図4 [デバッグが無効です]ダイアログにおけるデバッグの有効化

 デバッグ実行が開始されると自動的に既定のブラウザが立ち上がり、ルート・フォルダの内容が表示される。そこでService.asmxを指定すれば、次のように表示される。

図5 デバッグ実行中のXML WebサービスのWebブラウザでの表示
なおデフォルトの設定では、この画面はローカル接続したときのみ表示が可能で、URLを指定して別PCからリモート接続したときにはセキュリティのため表示されない。その点でも開発時はローカルで作業できるようにしておく方が便利だ。

 XML Web サービス「Service」には、Webメソッド「HelloWorld」があることが分かる。それぞれの項目の下に説明が表示されているが、これらは、WebService属性とWebMethod属性のDescriptionプロパティに設定した値である。このようにDescriptionプロパティを記述することで、XML Webサービスの概要を日本語で表示できる。

 図5の[HelloWorld]リンクをクリックすれば、HelloWorldメソッドのテスト実行が可能だ。実際に実行してみよう。

(4)Webメソッドの実行

 [HelloWorld]リンクをクリックすると、次のような画面が表示される。ここで[起動]ボタンをクリックすると、テスト実行が行われる。

図6 Webメソッドの実行

 このように、XML Webサービスのテスト実行結果は、XMLデータとして返却される。図6の下の画面を見ると、String型の「Hello World」が返却されており、ServiceクラスのHelloWorldメソッドが実行された結果であることが分かる。


 INDEX
  [特集]効率的なデータベース開発の実践
  DBアクセス用のXML Webサービスとは?
    1.DBアクセス用のXML Webサービス
  2.XML Webサービスの作成
    3.XML Webサービスの単体テストの実行
    4.XML WebサービスのWebメソッドへのパラメータの考察
    5.DBアクセスXML Webサービスを作成する
    6.DBアクセスXML Webサービスを使ってみる


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)
- PR -

注目のテーマ

業務アプリInsider 記事ランキング

本日 月間
ソリューションFLASH