7.5 SOAPアプリケーション運用時の注意事項

SOAPアプリケーション運用時の注意事項について説明します。

<この節の構成>
(1) 他社製品と接続する場合の多重配列送受信形式の確認
(2) SOAP Faultに関する注意事項
(3) 不正リクエストメッセージ受信時の動作について
(4) エラーページ委任機能を使用する場合の注意事項
(5) サーブレットのデフォルトマッピングについて
(6) リロード機能について
(7) 異常発生時のアプリケーションログ出力機能について
(8) DD(web.xml)ファイルの記述内容について
(9) 旧バージョンの環境の移行について
(10) 受信時サイズチェック機能について

(1) 他社製品と接続する場合の多重配列送受信形式の確認

SOAP通信基盤では,多重配列のデータ型を通信する場合,次に示す様なSOAPメッセージが送受信されます。他社製品と接続する場合は,この形式が扱えるかどうかを確認して,多重配列のデータ型を送受信してください。他社製品と通信できない場合があります。

<in xsi:type="soapenc:Array" soapenc:arrayType="ns1:UserData[][2]"
   xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<item xsi:type="soapenc:Array"
      soapenc:arrayType="ns1:UserData[3]">
 <item xsi:type="ns1:UserData">
  <Key xsi:type="xsd:string">key00</Key>
  <Value xsi:type="xsd:string">value00</Value>
 </item>
 <item xsi:type="ns1:UserData">
  <Key xsi:type="xsd:string">key01</Key>
  <Value xsi:type="xsd:string">value01</Value>
 </item>
 <item xsi:type="ns1:UserData">
  <Key xsi:type="xsd:string">key02</Key>
  <Value xsi:type="xsd:string">value02</Value>
 </item>
</item>
<item xsi:type="soapenc:Array"
      soapenc:arrayType="ns1:UserData[3]">
 <item xsi:type="ns1:UserData">
  <Key xsi:type="xsd:string">key10</Key>
  <Value xsi:type="xsd:string">value10</Value>
 </item>
 <item xsi:type="ns1:UserData">
  <Key xsi:type="xsd:string">key11</Key>
  <Value xsi:type="xsd:string">value11</Value>
 </item>
 <item xsi:type="ns1:UserData">
  <Key xsi:type="xsd:string">key12</Key>
  <Value xsi:type="xsd:string">value12</Value>
 </item>
</item>
</in>

(2) SOAP Faultに関する注意事項

(a) faultactor要素について

SOAPサービスから返されるFaultメッセージには,faultactor要素は含まれません。ただし,ユーザ実装でfault生成者を指定したC4Fault例外をスローした場合は除きます。

(b) detail要素について

SOAPヘッダ要素に関係するエラーによって,SOAPサービスからFaultメッセージが返される場合,返されるFaultメッセージは<detail/>を含む場合があります。また,SOAPボディ要素に関係するエラーによって,SOAPサービスからFaultメッセージが返される場合,ユーザ実装でFault詳細を指定したC4Fault例外をスローした場合を除いて,返されるFaultメッセージにdetail要素は含まれません。

(c) faultcode要素について

SOAPでは,Client,Server,VersionMismatch,MustUnderstandの四つのfaultcodeを定めていますが,SOAP通信基盤ではVersionMismatch,MustUnderstandだけ使用します。Client,Serverに代わるfaultcodeとして,SOAP通信基盤独自の名前空間(http://c4web.cosminexus.com)を持つClient,Serverを使用します。また,これらSOAP通信基盤独自のfaultcodeは,ドット表記による詳細コードを持つものがあります。

(3) 不正リクエストメッセージ受信時の動作について

リクエストのメッセージがHTTPリクエストとして正しい形式ではない,またはXMLが整形式(well-formed)ではないメッセージを受信した場合,HTTP状態コードとして"400 Bad Request"を返します。その時,faultメッセージも送信しますので,他社製品と接続するときは注意してください。他社製品と通信できない場合があります。

(4) エラーページ委任機能を使用する場合の注意事項

SOAPサービスが動作する環境(URL)でCosminexusが提供するエラーページの委任機能を使用する場合,SOAPサービスが動作するURLに対しては,エラーコード500のエラーページ委任機能を設定しないようにしてください。

SOAPでは,SOAPサービスでエラーが発生した場合に,SOAP Fault電文を作成し,エラーコード500でSOAPクライアントに返信します。そのため,エラーページ委任機能で,エラーコード500を委任すると,プロトコル違反となり,SOAPクライアント側に不正な電文が送信されることになります。

なお,プロトコル違反のSOAP Fault電文をSOAPクライアントが受け付けた場合の動作については,SOAPクライアント開発元に確認してください。エラーページ委任機能については,マニュアル「Cosminexus リファレンス 定義編」を参照してください。

(5) サーブレットのデフォルトマッピングについて

SOAPクライアント,およびSOAPサービスを,Cosminexusが提供するデフォルトマッピングで呼び出さないでください。SOAPエンジン,またはSOAPクライアントライブラリが予期しない動作をするおそれがあります。サーブレットのデフォルトマッピングについては,マニュアル「Cosminexus 機能解説」を参照してください。

(6) リロード機能について

SOAPアプリケーションをCosminexusが提供するリロード機能で入れ替えないでください。正しくアプリケーションが入れ替わらない場合があります。リロード機能については,マニュアル「Cosminexus 機能解説」を参照してください。

(7) 異常発生時のアプリケーションログ出力機能について

SOAP通信基盤では,SOAP FaultやC4Fault例外が発生した場合など,異常を検出した場合にアプリケーションログを出力する機能を動作定義オプションで指定できます。障害発生時のトラブルシュート機能を強化するため,SOAP通信基盤の動作定義オプションを使用することを強く推奨します。なお,動作定義ファイルの設定方法については,「10. 動作定義ファイルおよび実行時オプションの設定項目」を参照してください。

(8) DD(web.xml)ファイルの記述内容について

SOAPアプリケーションの開発時に作成するDD(web.xml)ファイルの記述については,「3.9.2 DD(web.xml)の記述」を参照してください。

(9) 旧バージョンの環境の移行について

旧バージョンの環境で開発したSOAPアプリケーションを利用する場合,移行手順に従い,SOAPアプリケーションを移行する必要があります。移行手順については,「付録A SOAPアプリケーションの移行」を参照してください。

(10) 受信時サイズチェック機能について

受信したマルチパートメッセージの最初にSOAPEnvelopeが含まれない場合,SOAPEnvelopeより前に位置する添付データに対して,受信時サイズチェック機能が機能しません。