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
-