Hitachi

Cosminexus V11 アプリケーションサーバ SOAPアプリケーション開発の手引


6.3 サービスデプロイ定義を生成する

Java2WSDDコマンドを使用して,作成したJavaプログラムをSOAPアプリケーションとして利用するための定義ファイルを生成します。

Java2WSDDコマンドの指定例を示します。

Java2WSDD.bat -p C4MSG -s MsgService msgservice.MessageServiceImpl

このコマンドを実行すると,カレントディレクトリにサービスデプロイ定義ファイル(server-config.xml)が生成されます。

この例では,-pオプションでC4MSGを指定することでメッセージングのサービスデプロイ定義ファイルを生成し,-sオプションでサービス名を指定していますが,必要に応じてほかのオプションも指定してください。オプションについては,「9.3 Java2WSDDコマンド(サービスデプロイ定義の生成)」を参照してください。

SOAPヘッダ項目の解釈処理をSOAPサービスに実装している場合は,-Sオプションで"true"を指定してください。また,SOAPメッセージをほかのSOAPサービスに中継し,そこでSOAPヘッダを処理する場合も-Sオプションで"true"を指定してください。

注意事項

-Sオプションで"true"を指定した場合,SOAP通信基盤はmustUnderstand属性をチェックしません。このため,次の処理をサーバ側で実装してください。

  • すべてのSOAPヘッダ項目のうち,処理が必須であると設定されているSOAPヘッダ項目に対して,処理を実装してください。

  • 処理が必須であると設定されているSOAPヘッダ項目の処理に失敗した場合は,SOAP Faultを送信する処理を実装してください。

  • SOAPメッセージを中継する場合は,中継先で処理されるように,未処理のSOAPヘッダ項目は削除しないでください(処理済のSOAPヘッダ項目は削除してください)。

  • 中継先からSOAP Faultを受けた場合は,クライアントにSOAP Faultを送信する処理を実装してください。

注※

「処理が必須であると設定されているSOAPヘッダ項目」とは,actor属性値がSOAPサービス自身を示すURIであり,かつmustUnderstand属性値での処理が必須であると設定されているSOAPヘッダ項目のことを示します。

次に,送信するSOAP Faultの詳細について示します。

表6‒1 送信するSOAP Faultの詳細(-Sオプションで"true"を指定した場合)

SOAP Faultの要素

指定値

faultcode

名前空間識別子:MustUnderstand

(名前空間識別子は,「http://schemas.xmlsoap.org/soap/envelope/」を推奨します)

faultstring

Did not understand "MustUnderstand" header(s):{名前空間識別子:ヘッダ項目のローカル名}

faultactor

SOAP Fault発生元を識別するURI

detail

null

-Sオプションで"false"を指定した場合,SOAP通信基盤はサーバ側の実装を呼び出す前にmustUnderstand属性をチェックします。mustUnderstand属性が「1」となっているSOAPヘッダが存在した場合,サーバ側の実装を呼び出さないでクライアントにSOAP Faultを送信します。

次にクライアントに送信するSOAP Faultの詳細について示します。

表6‒2 送信するSOAP Faultの詳細(-Sオプションで"false"を指定した場合)

SOAP Faultの要素

指定値

faultcode

名前空間識別子:MustUnderstand

(名前空間識別子は,「http://schemas.xmlsoap.org/soap/envelope/」)

faultstring

Did not understand "MustUnderstand" header(s):{名前空間識別子:ヘッダ項目のローカル名}

faultactor

null

detail

null