1.7.8. Visual Studio .NET(C#)

1.7.8.1. 概要

Microsoft Visual Studio .NET 2003のうち、C#で作成したWebサービスのクライアントサンプルです。

チュートリアルで作成したWebサービスに、「.NET」で作成したWebサービスクライアントからアクセスするサンプルです。ここではMicrosoft VisualStudio .NET 2003(以降VisualStudio.NET)を用いてチュートリアルで作成したHelloServiceにアクセスするコンソールクライアントを作成します。

Caution
VisualStudio.NETはWebOTXライセンスにはバンドルされていません。ご利用の際は別途Microsoft社より該当製品をご購入ください。

プロジェクトの作成
VisualStudio .NETを起動し、VisualStudio .NETのプロジェクトを新規作成します。メニュー ファイル > 新規作成 > プロジェクト」もしくは、スタートページ新しいプロジェクト でウィザードを起動し、プロジェクトの作成を開始します。


図1.7.8.1-1


図1.7.8.1-2

C#のコンソールアプリケーションを作成するので、Visual C#プロジェクト > コンソールアプリケーションを選択。また、この画面で プロジェクト名と保存する場所も設定します。実際に出力される場所は「プロジェクトは-に作成されます。」という表示を確認します。
Web参照の追加
プロジェクトを作成するとClass1.csが自動生成されていますが、ソース記述の前に次のどちらかの手順でWeb参照の追加を行います。
■メニュープロジェクト > Web参照の追加を選択
■画面右側のソリューションエクスプローラでプロジェクト名か参照設定で右クリックメニュー Web参照の追加を選択


図1.7.8.1-3

Web参照の追加では、WSDLを参照することでクライアント用の中間コードを生成します。Web参照の追加ダイアログのURL欄にWSDLの URLファイルパスを次のように入力します。
(例)http://localhost/HelloService/Hello?wsdl
(例) C:\workspace\HelloService\xml\Hello.wsdl
入力後、移動をクリックします。Webサービスが見つかった場合、右側のウィンドウにサービスのリストが表示されます。ここでは、Helloサービスが表示されていることを確認してください。


図1.7.8.1-4

Webサービスが正常に参照できたら、プロジェクト内に追加します。Web参照名にユニークな名前を入力して 参照の追加をクリックします。
プロジェクト配下にWeb Referenceが追加され、その下に設定した参照名でWebサービスクライアントの中間コードが生成されます。
ここでエラーが発生した場合、WSDLの公開方法が間違っていることがあります。また、WSDLの書式によってはVisualStudio .NETで処理できないことがあります。詳細についてはVisualStudio .NETのマニュアルを参照してください。


図1.7.8.1-5

コーディング
Class1.csにソースコードを追加します。太字の4行を追加してください。
using System;
namespace HelloServiceClient { 
  class Class1 { 
    [STAThread] 
    static void Main(string[] args) { 
      WebReference.Hello binding = new WebReference.Hello(); 
      binding.Url = "http://localhost/HelloService/Hello"; 
      String ret = binding.say_hello_Hello("WebOTX"); 
      Console.WriteLine("Message:" + ret); 
    }
  }
}
      
次の値は環境により変更しなければならないことがある場合があります。
表1.8.8.1-1
名称
説明
WebReference.Hello
Webサービスのインスタンスを呼び出します。記述名は「Web Reference以下に記述された参照名」+「.(ドット)」+「Webサービス名」になります。
binding.Url
ターゲットのURLを指定します。ポートやサーバ名が変更になった場合や、TCPモニタでSOAPメッセージを確認したい場合に適宜変更してください。
binding.say_hello_Hello("WebOTX");
例では入力値を埋め込んでいますが、コンソールでの対話型にしたり、外部ファイルから読み込ませたりすることも可能です。手順についてはVisualStudio .NETのマニュアル等を参照してください。
メニュー ビルド > ソリューションのビルド を選択してソースをビルドします。


図1.7.8.1-6

正常にビルドが完了すると画面下の出力に右のような出力になります。もし失敗が0でない場合は、ソースの記述が間違っていないか確認してください。


図1.7.8.1-7

接続テスト
実際にHelloサービスにアクセスしてテストします。正常に通信できた場合、次のようなメッセージが表示されます。


図1.7.8.1-8

リリース
ビルドファイルのリリースを行います。次のどちらかの操作を行います。
■画面上部のDebugをReleaseに変更
■メニュー ビルド > 構成マネージャを選択し、アクティブソリューション構成を Release に変更


図1.7.8.1-9

プロジェクト内のbin\Releaseフォルダ内にexeファイルが出力されます。
出力されたexeファイルを使用すると、Helloサービスへアクセスできます。


図1.7.8.1-10

1.7.8.2. 構成


表1.8.8.2-1
HelloService.war アクセス先とするWebサービス
HelloServiceClient/ プロジェクト名
bin/ デバッグ、またはビルド時に生成された実行ファイル(.exe)が格納されているディレクトリです。
obj/ ビルド時に生成されるdllなどの中間データです。
Web References/ クライアントが利用するWSDLファイルやクライアントがアクセスするときに利用する中間コードなどが格納されています。
App.ico このプロジェクトで作成される実行ファイル(.exe)で利用されるアイコンのファイルです。
AssemblyInfo.cs プロジェクト内のアセンブリに関するメタデータを含むプロジェクト情報ファイルです。
Classes1.cs サンプル本体です。クライアントとしての実行ロジック本体はこのファイルに記述されています。
HelloServiceClient.csproj
HelloServiceClient.csproj.user
HelloServiceClient.sln
HelloServiceClient.suo
Visual Studi .NETのプロジェクト構成ファイルです。本プロジェクトをインポートするときは.csprojファイルか.slnファイルをVisual Studio .NETから開いてください。

1.7.8.3. 実行手順

  1. HelloCsharpClient.zipをダウンロードして、解凍します。
  2. WebOTX運用管理ツール パースペクティブで解凍したディレクトリ下の HelloService.war を配備します。
  3. メニュー ツール > TCP モニタ を選択して起動します。
  4. TCP モニタの 管理 タブで、待ち受けポート8090 を入力します。ターゲットホスト名localhost を入力し、ターゲットポート にサーバの ポート番号 を入力します。
  5. 設定が終わったら、追加 をクリックします。TCP モニタの使用方法については、 1.2.8. Webサービスの実行 の中で説明しています。
  6. コマンドプロンプトで解凍したディレクトリ下のbin\ReleaseにあるHelloServiceClient.exeを実行して、「Message: Hello WebOTX !」が返却されます。

1.7.8.4. 注意事項

  1. サーバの環境により異なるターゲットへ接続したい場合、Classes1.csの修正とプロジェクトのビルドが必要になります。
  2. binディレクトリ内部のexeファイルの動作には.NET Framework 1.1以降が必要になります。.NET Framework 1.1がインストールされていない場合はMicrosoft社のホームページより入手し、インストールしてください。