1.2.8. Webサービスの実行

作成したWebサービスアプリケーションの実行について説明します。

1.2.8.1. Webサービスエクスプローラで実行

Webサービスエクスプローラを使って、配備したWebサービスのWSDLを読みこみ、簡単な動作確認を行うことができます。
WebOTX Developer’s Studioでメニュー 実行 > Webサービス・エクスプローラーの起動 を選択し、 Webサービス・エクスプローラーを起動します


図1.2.8.1-1

Webサービス・エクスプローラー(WSDL ページ)アイコン をクリックし、ナビゲーター 欄に WSDL メイン を表示させます。


図1.2.8.1-2

WSDL メイン をクリックし、アクション 欄の WSDL URL に読み込みたいWSDLのアドレスを入力して、Go をクリックすると、WSDLが読み込まれます。


図1.2.8.1-3

アクション欄にWSDLのオペレーションが表示されます。
操作の一覧の動作確認を行いたい オペレーション名をクリックします。


図1.2.8.1-4

オペレーションの引数などの情報が アクション 欄 に表示されます。


図1.2.8.1-5

引数の 追加 をクリックして テストデータを入力し、Go をクリックします。


図1.2.8.1-6

呼び出しが成功すると状況 欄 に入力と出力のSOAPメッセージが表示されます。
状況 欄の右上のソース もしくは 書式 をクリックすることで、表示形式を変更することが出来ます。


図1.2.8.1-7

Caution
Webサービスを配備してから、生成したWSDLファイルが他のWSDLファイルをインポートしている場合、Webサービスエクスプローラで生成したWSDLファイルアドレスをアクセスすることができません。

1.2.8.2. TCPモニタ

HTTPメッセージを中継することにより、サーバとクライアント間で交換されているSOAPメッセージを覗くためのツールが「TCPモニタ」です。ここでは、TCPモニタの使い方を説明します。
TCPモニタは、メニュー ツール > TCPモニタを選択して起動します。


図1.2.8.2-1

待ち受けポートにクライアントからリクエストを受け付ける ポート番号を指定します。ターゲットホスト名はサーバの ホスト名ターゲットポートにはサーバのポート番号を指定します。
設定が終わったら、追加 をクリックします。


図1.2.8.2-2

クライアントのポート番号でタブが作成されますので、そのタブを選択します。タブが作成された段階で、すでにこのポートのモニタリングは始まっていますので、この時点でクライアント・サーバ間を流れるSOAPメッセージを表示することができます。
XMLフォーマットをONにしておくと、SOAPメッセージに改行とインデントが入り、見やすくなります。


図1.2.8.2-3

Caution
TCPモニタはテスト用、メッセージ確認用としてお使いください。実運用においてメッセージログを取る目的で稼動できる設計にはなっていません。

Caution
添付ファイルつきSOAPメッセージをモニタリングするときは、 XMLフォーマットをOFFにしてください。

1.2.8.3. メッセージダンプ (JAX-WS)

JAX-WSでは送受信メッセージのダンプを出力することができます。 本機能を利用することでTCPモニタを利用せずにメッセージを確認することができます。 有効にするには、useHttpDumpプロパティの設定と、ログレベルの変更が必要となります。
●クライアント側での送受信メッセージのダンプ
Javaのシステムプロパティに以下を指定してください。
表1.2.8.3-1
プロパティ
com.nec.webotx.webservice.xml.ws.client.useHttpDump   true 
wojaxws.client.logger.level   FINEST 


スタンドアロンで実行する場合は、出力先を以下のプロパティで指定してください。
表1.2.8.3-2
プロパティ
wojaxws.client.logger.file   ファイル名 



●サーバ側での送受信メッセージのダンプ
Javaのシステムプロパティに以下を指定してください。
表1.2.8.3-3
プロパティ
com.nec.webotx.webservice.xml.ws.useHttpDump   true 


以下のモジュールログレベルを変更してください。
表1.2.8.3-4
モジュール
jaxws   TRACE 


Javaのシステムプロパティの設定方法は以下を参照してください。

ログレベルの変更の手順についてはWebOTXマニュアルの 「ドメイン構築・基本設定ガイド」-「ログ」-「その他」- 「ログの設定方法」 を参照してください。
出力先(ログファイル)

1.2.8.4. メッセージダンプ (JAX-RPC)

Memo
JAX-RPCは旧互換のための機能です。


●クライアント側での送受信メッセージのダンプ
静的スタブ形式での呼び出し時に以下のJavaオプションを加えることでクライアントが送受信する際のダンプメッセージを出力できます。本機能を利用することでTCPモニタを利用せずにメッセージを確認することができます。
-Dcom.nec.webotx.webservice.http.dump=true

Caution
静的スタブ形式以外でのダンプメッセージの取得はできません。他の形式のクライアントのダンプメッセージを取得するにはWebOTX DeveloperのTCPモニタを利用するか、他のHTTPプロトコル解析ツールをご利用ください。

ダンプメッセージの出力先はSystem.outになります。通常はコマンドプロンプトやシェルスクリプトのコンソール画面などに出力されます。
出力例:Hello World!を返すWebサービスの出力
******************
**** Request  ****
Content-Type: text/xml;charset="utf-8"
Content-Length: 422
SOAPAction: ""
User-Agent: "WebOTX WebService/x.xx.xx.xx"
<?xmlversion="1.0"encoding="UTF-8"?>
<env:Envelopexmlns:env="http://schemas.xmlsoap.org/soap/envelope/"xmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"xmlns:enc="http://schemas.xmlsoap.org/soap/encoding/"xmlns:ns0="http://com.nec.webotx.test">
<env:Body>
<ns0:echoString_TestClass>
<String_1>HelloWorld!</String_1>
</ns0:echoString_TestClass>
</env:Body>
</env:Envelope>
 
**** Response ****
HTTP/1.1 200 OK
Date: Mon, 10 Dec 2007 02:03:29 GMT
Server: WebOTX_Web_Server/2.0.61 (Win32)Webserver_Plugin/1.2.21
X-Powered-By: Servlet/2.4
SOAPAction: ""
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/xml;charset=utf-8
<env:Envelope xmlns:enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns0="http://com.nec.webotx.test"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<env:Body>
<ns0:echoString_TestClassResponse>
<result>Hello World!</result>
</ns0:echoString_TestClassResponse>
</env:Body>
</env:Envelope>
******************
Hello World!
※マニュアルのレイアウトにあわせるため、文中で適宜改行を入れています。
●サーバ側での送受信メッセージのダンプ
サーバ側のダンプメッセージはサーバ内のログレベルを変更することでログファイル内に出力させることが可能です。ログはログディレクトリのwebservice/webservice.logに出力されます。
ダンプメッセージを出力させるには、出力したいドメインのログコンポーネント「JAXRPC」をCONFIGからDEBUGに変更してください。
ログレベルを変更するには統合運用管理ツール(Administrator)を利用するか、運用管理コマンド(otxadmin)を利用する、またはWebOTXドメインのconfigディレクトリにあるlog4otx.xmlに対して直接編集を行って下さい。
log4otx.xmlでのcom.nec.webotx.webserviceの設定内容
<logger name="com.nec.webotx.enterprise.system.webservices.rpc" dditivity="true">
  <level value="CONFIG" class="com.nec.webotx.logging.OTXLogLevel"></level>
  <appender-ref ref="WSFILELOG"></appender-ref>
</logger>
ログレベルの変更の手順についてはWebOTXマニュアルの「ドメイン構築・基本設定ガイド」-「ログ」-「その他」- 「ログの設定方法」を参照してください。

Caution
サーバ側ダンプメッセージはWebアプリケーション形式でのみ出力ができます。EJBアプリケーション形式では出力できません。

Caution
サーバ側ダンプメッセージはドメイン全体で変更されます。配備したアプリケーションごと、などの切り替えはできませんので注意してください。

ログが正常に出力されると、ファイル内で以下のように出力されます。
出力例:Hello World!を返すWebサービスの出力
2007-12-10 11:03:29,871 DEBUG
com.nec.webotx.enterprise.system.webservices.rpc.server.http -
SOAP request message
*************************
content-type: text/xml;charset="utf-8"
content-length: 422
SOAPAction: ""
user-agent: "WebOTXWebService/x.xx.xx.xx"
host: localhost
accept: text/html, image/gif, image/jpeg,*; q=.2, */*;
q=.2
connection: keep-alive
<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns0="http://com.nec.webotx.test" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<env:Body>
<ns0:echoString_TestClass>
<String_1>HelloWorld!</String_1>
</ns0:echoString_TestClass>
</env:Body>
</env:Envelope>
*************************
 [TP-Processor3]
 
・・・中略・・・・
 
2007-12-10 11:03:29,871 DEBUG 
com.nec.webotx.enterprise.system.webservices.rpc.server.http -
SOAP response message
*************************
SOAPAction: ""
<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope
xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns0="http://com.nec.webotx.test">
<env:Body>
<ns0:echoString_TestClassResponse>
<result>Hello World!</result>
</ns0:echoString_TestClassResponse>
</env:Body>
</env:Envelope>
*************************
※マニュアルのレイアウトにあわせるため、文中で適宜改行を入れています。
リクエスト、レスポンスそれぞれについて出力がされます。サーバ側ログはログのフォーマットにより、出力の日時も表示されます。

Caution
本機能は開発時や障害時のメッセージ確認用の機能です。機能を有効にしたままシステムを稼動させると大量のログが出力され、システムのパフォーマンスに影響が出ることがありますので必要なとき以外は有効にしないでください。