|
|
WebOTX Manual V10.4 (第4版) 目次を表示 |

図2.9.1-1

図2.9.1.1-1
|
項目 |
説明 |
|---|---|
|
/META-INF/schema |
メッセージ検証用スキーマを格納するフォルダです。 |
|
/META-INF/jbi.xml |
サービスユニットの配備記述子です。 |
|
endpoints.xml |
SOAP BCのエンドポイントの設定が記述されます。 |
|
*.su |
サービスユニットの管理ファイルです(編集不可)。 |

図2.9.1.2-1
Memo
エンドポイントを追加する方法については、
2.7.1. エンドポイントの追加 をご覧下さい。
|
設定項目 |
説明 |
値 |
|||
|---|---|---|---|---|---|
| エンドポイント一覧 | |||||
|
SUで定義されたエンドポイントの一覧を表示します。 |
|||||
| 基本設定 | |||||
|
エンドポイントロール |
WebサービスクライアントからSOAPメッセージを受け取る場合(Inbound)はコンシューマを設定します。 外部Webサービスを呼び出す場合(Outbound)はプロバイダを設定します。 |
プロバイダ、コンシューマから選択 [必須] |
|||
|
サービス名 |
エンドポイントロールがプロバイダの場合、エンドポイントが提供するサービス名を指定します。 エンドポイントロールがコンシューマの場合、呼び出し先となるエンドポイントのサービス名を指定します。 |
QName(名前空間、ローカル名) [必須] |
|||
|
インタフェース名 |
エンドポイントロールがプロバイダの場合、エンドポイントが提供するインタフェース名を設定します。 コンシューマの場合、呼び出し先となるエンドポイントのインタフェース名を指定します。 |
QName(名前空間、ローカル名)[必須] |
|||
|
ESBインスタンス名 |
分散ESB機能を使用する場合にのみESBインスタンス名を指定します。
その他の場合は空欄にします。 |
文字(A-Z、a-z)、数字(0-9)、ハイフン(-)、点(.)、下線(_)の組み合わせ [任意] |
|||
| オペレーション一覧 | |||||
|
オペレーションを設定します。 |
|||||
| メッセージエクスチェンジハンドラ | |||||
|
メッセージエクスチェンジハンドラを設定します。 |
|||||
| 共通設定 | |||||
|
共通項目(セキュリティ認証、トランザクション、メッセージ送信優先度、エラーリトライ)を設定します。 |
|||||
| オプション一覧 | |||||
|
オプションを設定します。 |
|||||
Memo
エンドポイントロールをコンシューマにした場合、動作には別途Inboundサーブレットを配備する必要があります。詳細は[2.9.1.14. Inboundサーブレット]をご参照ください。
エンドポイントロールをプロバイダにした場合、サービス名とエンドポイント名の設定が他のプロバイダと重複しないようにしてください。
|
設定項目 |
説明 |
値 |
|||
|---|---|---|---|---|---|
| SOAP BCの設定 | |||||
|
外部Webサービスの エンドポイントURL |
外部のWebサービスのエンドポイントURLを設定します。 |
【マルチバイト文字列指定可】 文字列(URL)[必須] ※プロバイダの場合のみ |
|||
|
外部に公開する エンドポイントURL |
WebサービスクライアントがアクセスするためのURLを設定します。 |
【マルチバイト文字列指定可】 文字列(URL)[必須] ※コンシューマの場合のみ 他のコンシューマの設定と重複しないようにしてください。 |
|||
|
SOAPバージョン |
SOAPバージョンを指定します。 |
1.1、1.2から選択[任意] デフォルトは"1.1" |
|||
|
MTOMメッセージの Content-Typeヘッダ |
MTOMメッセージのContent-Typeヘッダを指定します。 多くの場合はMultipart/Relatedを指定することを推奨します。Axis2などを利用したWebサービスを呼び出すには、multipart/relatedを指定する必要があります。 |
Multipart/Related、multipart/relatedから選択[任意] デフォルトは"Multipart/Related" |
|||
|
XOPタグの削除 |
XOPタグを削除するかを指定します。MTOM同士の通信を行う時はtrueに設定してください。 |
None、In、Out、Bothから選択[任意] デフォルトは"None" |
|||
|
XML処理のタイプ |
SOAP BC内部のXML処理方式を選択します。 基本的にSAXは高速かつ低メモリで処理が可能ですが、場合によってDOMの方が高速になることがあります。 また、SOAPバージョンが1.2の場合、SOAPメッセージハンドラを使用する場合、受信したSOAPメッセージのSOAP Header内に1つ以上の要素がある場合、および、受信したSOAPメッセージに添付ファイルが存在する場合は、XML処理のタイプの設定に関係なくDOMで処理を行います。 |
SAX、DOMから選択[任意] デフォルトは"SAX" |
|||
|
圧縮して送受信する |
Gzipの形式でリクエストやレスポンスを送受信するかを設定します。 |
下記の値から選択。[任意]
※プロバイダの場合のみ |
|||
|
Expect-Continueハンドシェイクを行う |
エンドポイント単位でプロバイダがexpect-continue handshakeをサポートするかどうかを指定します。 |
下記の値から選択。[任意]
※プロバイダの場合のみ |
|||
|
コネクションを再利用する |
コネクションを再利用するかどうかを指定します。 |
下記の値から選択。[必須]
※プロバイダの場合のみ |
|||
|
コネクション再利用時に状態をチェックする |
コネクション再利用時にそのコネクションが有効であるかをチェックするかどうかを指定できます。 [コネクションを再利用するにtrueを選択した場合のみ設定可能] |
下記の値から選択。[任意]
※プロバイダの場合のみ |
|||
|
タイムアウト |
Keep-Aliveの有効時間。0の場合、Long.MAX_VALUEミリ秒とします。 [コネクションを再利用するにtrueを選択した場合のみ設定可能] |
数値(0〜9223372036854775)[任意] 単位:秒 デフォルト値:0 ※プロバイダの場合のみ |
|||
|
TCP_NODELAYを有効にする |
TCP_NODALAYソケットオプションを有効にするかどうかを指定します。 |
下記の値から選択。[任意]
※プロバイダの場合のみ |
|||
|
送受信バッファサイズ |
Socketのメッセージ送受信bufferサイズを指定します。 |
数値(0〜2147483647)[任意] 単位:バイト デフォルト値:1024 ※プロバイダの場合のみ |
|||
|
接続タイムアウト |
外部サーバへ接続を確立する際のタイムアウト時間を指定します。0の場合、タイムアウト時間は無制限です。 |
数値(0〜2147483)[任意] 単位:秒 デフォルト値:0 ※プロバイダの場合のみ |
|||
|
読み取りタイムアウト |
外部サーバのレスポンスを読み取りタイムアウト時間を指定します。0の場合、タイムアウト時間は無制限です。 |
数値(0〜2147483)[任意] 単位:秒 デフォルト値:0 ※プロバイダの場合のみ |
|||
Memo
外部に公開するエンドポイントURLのコンテキストルートは、Inbound用に配備するServletのコンテキストルートと一致する必要があります。詳細は[2.9.1.14. Inboundサーブレット]をご参照ください。
Memo
CORBA
BC,RMI BC,JDBC BCと接続する場合に、DOMの方が高速になります。
Memo
XOPは、XML文書とバイナリデータをそのまま通信パケットにまとめる標準的な手段を提供しており、MTOMはXOPの機能を利用してSOAPメッセージを処理する仕様です。MTOM/XOPをSOAP
1.2とともに使用すると、大きなバイナリデータを転送する標準的な手法が利用可能となります。

図2.9.1.2-2

図2.9.1.3-1
|
項目 |
説明 |
値 |
|||
|---|---|---|---|---|---|
|
オペレーション名 |
エンドポイントロールがプロバイダの場合、エンドポイントが提供するオペレーション名を指定します。 エンドポイントロールがコンシューマの場合、呼び出し先となるエンドポイントのオペレーション名を指定します。 |
QName(名前空間、ローカル名) [必須] |
|||
|
メッセージ交換方式 |
使用するメッセージ交換方式を指定します。 コンシューマの場合、プロバイダの提供するメッセージ交換方式を指定してください。 |
in-only、 in-out、robust-in-only から選択
[必須] |
|||
| スキーマファイル | インプット/アウトプット |
対象SUフォルダのMETA-INFフォルダのschemaフォルダ配下にあるスキーマファイルの相対パスを指定します。 指定したスキーマファイルは、後述のインプット検証/アウトプット検証を選択することで実行時のメッセージ検証に利用することができます。 選択しなかった場合も、XSLT SE による変換の定義の際のインプット/アウトプットスキーマとして利用することができます。 [メッセージ交換方式を指定した場合のみ設定可能] |
|||
|
参照 (インプット/アウトプット) |
スキーマファイルの選択ダイアログを開きます。 スキーマファイルを選択すると、その相対パスがインプットおよびアウトプットのファイルのテキストボックスに表示されます。 利用方法については、[2.7.7. スキーマファイルの設定] を参照して下さい。 |
||||
| 検証実行 | インプットの検証実行 |
実行時に、インプットで指定したスキーマファイルでのメッセージの検証を実施します。 選択時には、スキーマファイルのインプットの指定は必須項目となります。 [メッセージ交換方式を指定した場合のみ設定可能] |
デフォルトは非選択 [任意] |
||
| アウトプットの検証実行 |
実行時に、アウトプットで指定したスキーマファイルでのメッセージの検証を実施します。 選択時には、スキーマファイルのアウトプットの指定は必須項目となります。 [メッセージ交換方式を指定した場合のみ設定可能] |
デフォルトは非選択 [任意] |
|||
|
SOAP Action |
エンドポイントロールがプロバイダの場合、SOAPActionを指定します。空でよい場合、空欄のままで構いません。 |
文字列(URI)[任意] |
|||
|
受信方向の名前空間URI |
受信方向の名前空間のURIを指定します。 エンドポイントロールがコンシューマで、unwrapped documentを受信する場合に受け付けるSOAPメッセージのSOAPBody直下の子要素の名前空間を設定します。 エンドポイントロールがプロバイダの場合は利用しません。 |
文字列(URI)[任意] |
|||
|
送信方向の名前空間URI |
送信方向の名前空間のURIを指定します。 エンドポイントロールがコンシューマで、返信するメッセージのBodyがない場合に一番目の子要素の名前空間を設定します。 エンドポイントロールがプロバイダの場合は利用しません。 |
文字列(URI)[任意] |
|||
|
unwrapped Documentの要素受信方向の要素名 |
unwrapped
documentを受信する場合の受信方向の要素名を指定します。受信を許可するSOAP
Body直下の子要素名を設定してください。 |
文字列[任意] ※コンシューマの場合のみ |
|||
| SOAPボディ要素操作 | SOAPボディへ組み込む機能用、この要素により流れてきたメッセージに関連要素を挿入・削除します。 | 下記を選択します。[任意]
※プロバイダの場合のみ |
|||
| SOAPボディへ組み込む名前空間URI | SOAPボディへ組み込む機能用、SOAPボディへ組み込む名前空間URIです。 | 文字列(URI)[任意] ※プロバイダの場合のみ |
|||
| SOAPボディへ組み込む要素名 | SOAPボディへ組み込む機能用、SOAPボディへ組み込む要素名です。 | 任意の文字列[必須] ※プロバイダの場合のみ |
|||
| クッキーを転送する | 外部へ/からメッセージを送受信するとき、クッキーを伝播するかどうかを指定します。 HTTP BC或いはSalesforce BCとの組み合わせで使用可能です。 |
下記から選択します。[任意]
|
|||
| Chunkedで送受信する | chunkedで送信するかどうかを指定します。 | 下記を選択します。[任意] デフォルト値は自動です。
|
|||
| クエリ文字列を転送する | コンシューマから受け取ったQuery StringをアクセスするURLに付与するかどうかを指定します。 クライアントから受信する時、あれば、必ずノーマライズします。 HTTP BC或いはSalesforce BCとの組み合わせで使用可能です。 |
下記を選択します。[任意]
※プロバイダの場合のみ |
|||
| 相対パスの利用を有効にする | コンシューマから受け取った相対パスをアクセスするURLに付与するかどうかを指定します。 クライアントから受信する時、あれば、必ずノーマライズします。 HTTP BC或いはSalesforce BCとの組み合わせで使用可能です。 |
下記を選択します。[任意]
※プロバイダの場合のみ |
|||
Memo
unwrapped
Documentの要素受信方向の要素名を設定しない場合、オペレーション名はSOAPメッセージのBody要素の子要素の名前と一致する必要があります。

図2.9.1.4-1
|
項目 |
説明 |
値 |
|||
|---|---|---|---|---|---|
|
エンドポイント名のURL表記 |
エンドポイントをURL表記した値。リソース管理に用いられます。 |
http://webotxesb/<BC名>/エンドポイント名 省略した場合、ESB内部で自動生成されます。 |
|||
|
エンドポイントの認証の設定 |
OFFにした場合はエンドポイントの認証を行いません。 |
||||
|
エンドポイントのID |
認証に利用するIDを設定します。 |
文字列[必須] |
|||
|
パスワード |
認証に利用するパスワードを設定します。パスワードは暗号化とします。 |
文字列[任意] | |||
|
ログインモジュールの設定を行う |
ログインモジュールの設定を行います。 |
任意の文字列[任意]
|
|||
|
エンドポイントの認可の設定 |
OFFにした場合はエンドポイントの認可を行いません。 |
||||
|
認可に用いる認証情報 |
認可に利用する認証情報を設定します。 |
コンシューマの場合
|
|||
|
Principalの識別子 |
Principalの識別子を設定します。 |
任意の文字列[任意] | |||
|
認証情報を伝播する |
クライアント側の認証情報の伝播の設定です。OFFにした場合は、伝播を行いません。 |
コンシューマのみ | |||
|
Basic認証(Principalの識別子: basic) |
basicのみをサポートします。 |
basic。このチェックボックスをチェックすると、id属性=basic [必須] | |||
|
認証済情報を伝播する |
認証済情報の伝播の設定です。OFFにした場合は、伝播を行いません。 |
コンシューマのみ | |||
|
Basic認証(Principalの識別子: basic) |
basicをサポートします。 |
basic。このチェックボックスをチェックすると、id属性=basic [必須] | |||
|
ESBセキュリティ基盤によるクライアント認証 (Principalの識別子: esb) |
esbをサポートします。 |
esb。このチェックボックスをチェックすると、id属性=esb [必須] | |||
|
SSL 認証(Principalの識別子: ssl) |
sslをサポートします。 |
ssl このチェックボックスをチェックすると、id属性=ssl [必須] | |||
|
ESBセキュリティ基盤によるクライアント認証 |
クライアント認証を設定します。 |
コンシューマのみ | |||
|
参照するクライアントの認証情報 |
必要に応じて許容する値を変更します。 |
basic [必須] | |||
|
ログインモジュールの設定を行う |
ログインモジュールの設定を行います。 |
任意の文字列[任意]
|
|||
|
外部サービスの認証 |
OFFにした場合は認証を行いません。 |
プロバイダのみ | |||

図2.9.1.4-2
|
項目 |
説明 |
値 |
|||
|---|---|---|---|---|---|
|
Basic 認証の設定 |
外部サービスまでのbasic認証を使用します。 |
||||
|
クライアントから受信した認証ヘッダを使う |
client InboundでノーマライズされたHTTPヘッダを使用する InboundでノーマライズされたHTTPヘッダを使用します。 |
true。この要素が選択される時、固定値とはtrueです。 |
|||
|
その他設定 |
その他を設定します。 |
||||
|
Digest 認証の設定 |
外部サービスまでのdigest認証を使用します。 |
||||
|
クライアントから受信した認証ヘッダを使う |
client InboundでノーマライズされたHTTPヘッダを使用する InboundでノーマライズされたHTTPヘッダを使用します。 |
true。この要素が選択される時、固定値とはtrueです。 |
|||
|
Realm名 |
「digest」に「credential」あるいは「ep-password」あるいは[principal]を選択する時、このelementが設定できます。 |
任意の文字列[任意]。デフォルト値:hoge.com |
|||
|
OAuth認証の設定 |
OAuth認証の設定を行います。 |
||||
|
設定したConsumer情報のみを用いて アクセストークンを取得する |
Consumer情報の設定を用いることを示します。 |
||||
|
伝播されたアクセストークンのみを利用する |
MEプロパティに伝播されたOAuthのアクセストークンを用いることを示します。 |
||||
|
設定したConsumer情報と伝播された アクセストークンの両方を利用する (伝播されたアクセストークン優先) |
Consumer情報の設定と伝播されたOAuthアクセストークンの両方を用いることを示します。 |
||||
|
Access token URL |
OAuthアクセストークン要求先のリクエストURLを設定します。 |
文字列(URI)[必須] |
|||
|
認可タイプ |
OAuthアクセストークン要求先に設定された認可タイプを設定します。 |
選択肢:[必須]
|
|||
|
スコープ |
OAuthアクセストークン要求先に設定されたクライアントのスコープを設定します。 |
任意の文字列[任意]。複数指定する場合、半角スペースで区切ります。 |
|||
|
クライアントID |
OAuthアクセストークン要求先に存在するクライアントIDを設定します。 |
任意の文字列[任意]。 |
|||
|
クライアントシークレット |
クライアントIDに応じたクライアントシークレットを設定します。 |
任意の文字列[任意]。 |
|||
|
認証情報を選択する |
認証情報を選択します。 |
||||
|
アクセストークンを伝播する |
MEプロパティにアクセストークンを含むOAuthPrincipalを伝播するかどうかを選択します。 |
選択肢:[必須]
|
|||
|
アクセストークンをキャッシュする |
アクセストークンを含むOAuthPrincipalをエンドポイントに保持するかどうかを選択します。 |
選択肢:[必須]
|
|||
|
アクセストークンの最大キャッシュ数 |
アクセストークンをエンドポイントに保持する場合の最大キャッシュ数です。 |
数値(0〜2147483647)[必須] デフォルト値:1000 |
|||

図2.9.1.4-3
|
項目 |
説明 |
値 |
|||
|---|---|---|---|---|---|
|
外部サービス用認証情報を設定する |
外部サービス用認証情報を設定します。 |
||||
|
ユーザID |
認証に利用するidを設定します。 |
文字列[必須] |
|||
|
パスワード |
認証に利用するパスワードを設定します。 |
文字列[必須]、暗号化します。 |
|||
|
エンドポイント用認証情報を利用する |
エンドポイント用認証情報を利用します。 |
true |
|||
|
クライアントの認証情報を利用する |
クライアントの認証情報を利用します。 |
||||
|
Principalの識別子 |
Principalの識別子を設定します。 |
任意の文字列[任意] |
|||
|
項目 |
説明 |
値 |
|||
|---|---|---|---|---|---|
|
MaxRequestCount |
エンドポイント単位で同時処理できる最大リクエスト数を設定します。 0にした場合は無制限となります。この設定はコンシューマでのみ有効です。 |
0-214748 | |||
|
ExceedRequestTimeout |
同時処理できる最大リクエスト数を超えた場合の最大待ち時間を設定します(秒)。 この設定はconsumerでのみ有効です。 |
-1-214748 | |||
|
AUTHORIZE_SKIP |
エラーリトライ時に認証処理をスキップするか否かを指定します。 |
true/false | |||
Memo
メッセージエクスチェンジハンドラと、SOAPメッセージハンドラ・トランスポートハンドラは別のものです。メッセージエクスチェンジハンドラの場合はSUエディタを編集すると自動的にendpoints.xmlが編集されますが、SOAPメッセージハンドラとトランスポートハンドラは手動でendpoints.xmlを編集する必要があります。(詳細は2.9.1.15.SOAPメッセージハンドラの実装と設定、2.9.1.16.トランスポートハンドラの実装と設定
を参照してください。)
|
MEP |
タイプ |
動作の説明 |
|---|---|---|
|
In-Only |
要求 |
NMR から受け付けたメッセージエクスチェンジに格納されたInメッセージをSOAPリクエストに変換して、エンドポイントで定義された外部Webサービスに送信し、WebサービスからのErrorかdoneに相当するレスポンスメッセージを待ち合わせます。 |
|
応答(done) |
Webサービスからdoneを示すHTTPレスポンス(※)を受信すると、DONEステータスを設定したメッセージエクスチェンジを NMR に返却します。 ※レスポンスメッセージの情報 ・HTTPステータス 200/202/204 |
|
|
応答(Error) |
SOAPリクエストの送信に失敗したときにErrorとなります。WebサービスからErrorを示すレスポンスメッセージ(※)を受信すると、例外メッセージを格納したメッセージエクスチェンジを NMR に返却します。 ※doneを示すHTTPレスポンス以外のもの |
|
|
Robust-In-Only
|
要求 |
NMR から受け付けたメッセージエクスチェンジに格納されたInメッセージをSOAPリクエストに変換して、エンドポイントで定義された外部Webサービスに送信し、WebサービスからのFaultかErrorかdoneに相当するレスポンスメッセージを待ち合わせます。 |
|
応答(Fault) |
WebサービスからFaultを示すレスポンスメッセージ(※)を受信すると、変換したFaultデータを格納したメッセージエクスチェンジを NMR に返却します。この後、 NMR からDONEステータスが設定されたメッセージエクスチェンジを待ち受けます。 ※レスポンスメッセージの情報 ・HTTPステータス 500 ・コンテントタイプ text/xml |
|
|
応答(done) |
Webサービスからdoneを示すレスポンスメッセージ(※)を受信すると、DONEステータスを設定したメッセージエクスチェンジを NMR に返却します。 ※レスポンスメッセージの情報 ・HTTPステータス 200/202/204 |
|
|
応答(Error) |
SOAPリクエストの送信に失敗したときにErrorとなります。WebサービスからErrorを示すレスポンスメッセージ(※)を受信すると、例外メッセージを格納したメッセージエクスチェンジを NMR に返却します。 ※Fault/doneを示すHTTPレスポンス以外のもの |
|
|
In-Out |
要求 |
NMR から受け付けたメッセージエクスチェンジに格納されたInメッセージをSOAPリクエストに変換して、エンドポイントで定義された外部Webサービスに送信し、WebサービスからのoutかFaultかErrorに相当するレスポンスメッセージを待ち合わせます。 |
|
応答(out) |
Webサービスからoutを示すレスポンスメッセージ(※)を受信すると、変換したoutデータを格納したメッセージエクスチェンジを NMR に返却します。この後、 NMR からDONEステータスが設定されたメッセージエクスチェンジを待ち受けます。 ※レスポンスメッセージの情報 ・HTTPステータス 200 ・コンテントタイプ text/xml |
|
|
応答(Fault) |
WebサービスからFaultを示すレスポンスメッセージ(※)を受信すると、変換したFaultデータを格納したメッセージエクスチェンジを NMR に返却します。この後、 NMR からDONEステータスが設定されたメッセージエクスチェンジを待ち受けます。 ※レスポンスメッセージの情報 ・HTTPステータス 500 ・コンテントタイプ text/xml |
|
|
応答(Error) |
SOAPリクエストの送信に失敗したときにErrorとなります。WebサービスからErrorを示すレスポンスメッセージ(※)を受信すると、例外メッセージを格納したメッセージエクスチェンジを NMR に返却します。 ※out/doneを示すHTTPレスポンス以外のもの |
|
|
In-Optional-Out
|
-- |
(SOAP BCでは対応しません) |
|
MEP |
タイプ |
動作の説明 |
|---|---|---|
|
In-Only |
要求 |
エンドポイントで定義されたURLからSOAPリクエストを受信すると、変換したInメッセージを格納したメッセージエクスチェンジを NMR に送信し、 NMR からのERRORかDONEステータスが設定されたメッセージエクスチェンジを待ち受けます。 SOAPクライアントから送信してきたSOAPリクエストのチェックに失敗した場合、NMRへメッセージを転送しなくて、エラーを示すHTTPレスポンス(※)をSOAPクライアントに返します。 ※異常系メッセージ(Fault/Error)のSOAP BCのエラーコード一覧を参照 |
|
応答(done) |
NMR からDONEステータスが設定されたメッセージエクスチェンジを受信すると、SOAPクライアントへdoneを示すレスポンスメッセージ(※)を返信します。 ※レスポンスメッセージの情報 ・HTTPステータス 202 |
|
|
応答(error) |
NMR からERRORステータスが設定されたメッセージエクスチェンジを受信すると、SOAPクライアントへdoneを示すレスポンスメッセージ(※)を返信します。 ※doneを示すレスポンスメッセージの情報 ・HTTPステータス 202 |
|
|
Robust-In-Only
|
要求 |
エンドポイントで定義されたURLからSOAPリクエストを受信すると、変換したInメッセージを格納したメッセージエクスチェンジを NMR に送信し、 NMR からのFault/Error/doneのメッセージエクスチェンジを待ち受けます。 SOAPクライアントから送信してきたSOAPリクエストのチェックに失敗した場合、NMRへメッセージを転送しなくて、エラーを示すHTTPレスポンス(※)をSOAPクライアントに返します。 ※異常系メッセージ(Fault/Error)のSOAP BCのエラーコード一覧を参照 |
|
応答(Fault) |
NMR から受け付けたメッセージエクスチェンジに格納されたFaultデータをSOAP
Faultレスポンスメッセージ(※)に変換して、SOAPクライアントに送信し、DONEステータスを設定したメッセージエクスチェンジを NMR に返却します。 ※SOAP Faultレスポンスメッセージの情報 ・HTTPステータス 500 ・コンテントタイプ text/xml ・SOAP Fault Code OutboundがSOAP BCの場合:メッセージエクスチェンジに格納されたFaultデータのFault Code OutboundがSOAP BCではない場合:Receiver(SOAPバージョンが1.2の場合)/Server(SOAPバージョンが1.1の場合) ・SOAP Fault String OutboundがSOAP BCの場合:メッセージエクスチェンジに格納されたFaultデータのFault String OutboundがSOAP BCではない場合:メッセージエクスチェンジに格納されたFaultデータのerrorString |
|
|
応答(done) |
NMR からdoneのメッセージエクスチェンジを受信すると、done相当のSOAPレスポンスメッセージ(※)をSOAPクライアントに送信します。 ※レスポンスメッセージの情報 ・HTTPステータス 202 |
|
|
応答(error) |
NMR からerrorのメッセージエクスチェンジを受信すると、error相当のSOAP
Faultレスポンスメッセージ(※)をSOAPクライアントに送信します。 ※SOAP Faultレスポンスメッセージの情報 ・HTTPステータス 500 ・コンテントタイプ text/xml ・SOAP Fault Code Receiver(SOAPバージョンが1.2の場合)/Server(SOAPバージョンが1.1の場合) ・SOAP Fault String メッセージエクスチェンジのErrorの例外メッセージ |
|
|
In-Out |
要求 |
エンドポイントで定義されたURLからSOAPリクエストを受信すると、変換したInメッセージを格納したメッセージエクスチェンジを NMR に送信し、 NMR からのout/Fault/Errorのメッセージエクスチェンジを待ち受けます。 SOAPクライアントから送信してきたSOAPリクエストのチェックに失敗した場合、NMRへメッセージを転送しなくて、エラーを示すHTTPレスポンス(※)をSOAPクライアントに返します。 ※異常系メッセージ(Fault/Error)のSOAP BCのエラーコード一覧を参照 |
|
応答(out) |
NMR から受け付けたメッセージエクスチェンジに格納されたoutデータをSOAPレスポンスメッセージ(※)に変換して、SOAPクライアントに送信し、DONEステータスを設定したメッセージエクスチェンジを NMR に返却します。 ※SOAPレスポンスメッセージの情報 ・HTTPステータス 200 ・コンテントタイプ text/xml |
|
|
応答(Fault) |
NMR から受け付けたメッセージエクスチェンジに格納されたFaultデータをSOAP
Faultレスポンスメッセージ(※)に変換して、SOAPクライアントに送信し、DONEステータスを設定したメッセージエクスチェンジを NMR に返却します。 ※SOAP Faultレスポンスメッセージの情報 ・HTTPステータス 500 ・コンテントタイプ text/xml ・SOAP Fault Code OutboundがSOAP BCの場合:メッセージエクスチェンジに格納されたFaultデータのFault Code OutboundがSOAP BCではない場合:Receiver(SOAPバージョンが1.2の場合)/Server(SOAPバージョンが1.1の場合) ・SOAP Fault String OutboundがSOAP BCの場合:メッセージエクスチェンジに格納されたFaultデータのFault String OutboundがSOAP BCではない場合:メッセージエクスチェンジに格納されたFaultデータのerrorString |
|
|
応答(Error) |
NMR からerrorのメッセージエクスチェンジを受信すると、error相当のSOAP
Faultレスポンスメッセージ(※)をSOAPクライアントに送信します。 ※SOAP Faultレスポンスメッセージの情報 ・HTTPステータス 500 ・コンテントタイプ text/xml ・SOAP Fault Code Receiver(SOAPバージョンが1.2の場合)/Server(SOAPバージョンが1.1の場合) ・SOAP Fault String メッセージエクスチェンジのErrorの例外メッセージ |
|
|
In-Optional-Out
|
(SOAP BCでは対応しません) |
Memo
Robust
In-Onlyの場合のステータスコードがV8.21より200から202に変更されました。

図2.9.1.11-1

図2.9.1.11-2

図2.9.1.11-3

図2.9.1.11-4
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding">
<SOAP-ENV:Header />
<SOAP-ENV:Body>
<ns0:operation xmlns:ns0="http://com.nec.webotx">
<ns0:param0>abc</ns0:param0>
<ns0:param1>100</ns0:param1>
</ns0:operation>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

<?xml version="1.0" encoding="UTF-8"?> <ns0:operation xmlns:ns0="http://com.nec.webotx"> <ns0:param0>abc</ns0:param0> <ns0:param1>100</ns0:param1> </ns0:operation>デノーマライズ (ノーマライズメッセージからSOAPメッセージへの変換)では、ノーマライズメッセージをメッセージペイロード(*)とし、SOAPメッセージを構築します。
<?xml version="1.0" encoding="UTF-8"?> <ns0:operation xmlns:ns0="http://com.nec.webotx"> <ns0:param0>abc</ns0:param0> <ns0:param1>100</ns0:param1> </ns0:operation>

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Header />
<SOAP-ENV:Body>
<ns0:operation xmlns:ns0="http://com.nec.webotx">
<ns0:param0>abc</ns0:param0>
<ns0:param1>100</ns0:param1>
</ns0:operation>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
注:
上記はインデントを整形しており、実際とは異なります。WebOTX ESBにおいて「SOAP BCに誤ったメッセージが入力された」、「サービス呼び出しに失敗した」等の異常が発生した場合、SOAP BCのInboundからクライアントアプリケーションにSOAP Faultメッセージが返却されます。 クライアントアプリケーションでは返却されたSOAP Faultメッセージから発生した異常の内容を知ることができます。 以下では、発生する異常の種類ごとのSOAP BCのInboundからクライアントアプリケーションに返却するメッセージを説明します。
異常の種類により Fault または Error の分類があります。 SOAP BCにおいて異常が発生するパターンの一覧です。 [ リファレンス集 開発編(Enterprise Service Bus) > 2. 異常系メッセージ(Fault/Error) > 2.1. バインディングコンポーネント > 2.1.1. SOAP BC ]
プロバイダエンドポイントがFaultを返却した場合(SOAP BC同士の連携時)
SOAP BCのプロバイダエンドポイントが SOAP Fault を受け取ると、 SOAP BCのInboundにはFaultが通知され、 クライアントアプリケーションにはプロバイダエンドポイントが受け取った SOAP Fault がそのまま通知されます。
プロバイダエンドポイントがFaultを返却した場合(SOAP BC以外との連携時)
SOAP BC以外のプロバイダエンドポイントから Fault を受け取った場合、 SOAP BCのInboundでSOAP Fault形式のメッセージを生成し、クライアントアプリケーションに返信します。 UserProcessor SEから "User Fault" というメッセージの Fault メッセージが通知された例です。
500 Internal Server Error
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Body>
<soap:Fault>
<faultcode>soap:Server</faultcode>
<faultstring>User Fault</faultstring>
</soap:Fault>
</soap:Body>
</soap:Envelope>
プロバイダエンドポイントがErrorを返却した場合(SOAP 1.1)
SOAP BCのプロバイダエンドポイントが外部Webサーバから404を受け取った場合の例です。 コンシューマエンドポイントに Error が通知され、クライアントアプリケーションへ以下の電文が返信されます。
500 Internal Server Error
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Body>
<soap:Fault>
<faultcode>soap:Server</faultcode>
<faultstring>
javax.jbi.JBIException: 外部WebサービスからSOAPメッセージ以外の
レスポンスメッセージを受け取りました。レスポンスコードは 404 です。
</faultstring>
</soap:Fault>
</soap:Body>
</soap:Envelope>
プロバイダエンドポイントがErrorを返却した場合(SOAP 1.2)
UserProcessor SEがプロセッサのインスタンスの生成に失敗した場合の例です。 「SOAPバージョン」を 1.2 にした場合、SOAP Fault形式も SOAP 1.2 に準拠した形式となります。
500 Internal Server Error
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Body>
<soap:Fault>
<soap:Code>
<soap:Value>soap:Receiver</soap:Value>
</soap:Code>
<soap:Reason>
<soap:Text xml:lang="ja-JP">
javax.jbi.JBIException: プロセサオブジェクトの生成時か、初期化時に異常が発生しました。
</soap:Text>
</soap:Reason>
</soap:Fault>
</soap:Body>
</soap:Envelope>
「同時処理最大リクエスト数」を超えてタイムアウトした場合
SOAP BCのコンシューマに設定する「同時処理最大リクエスト数」を超えてタイムアウトした場合の例です。 SOAP BCとしてメッセージを受理できていないためメッセージ内容はHTML形式の文書です。
503 Service Unavailable
<html><head><title>WebOTX 8.XX.XX.XX - Error report</title><style><!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2
{font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY
{font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P
{font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}HR {color : #525D76;}--></style> </head><body><h1>HTTP Status 503 - </h1><HR
size="1" noshade="noshade"><p><b>type</b> Status report</p><p><b>message</b> <u></u></p><p><b>description</b> <u>The requested service () is not currently available.</u></p><HR size="1"
noshade="noshade"><h3>WebOTX 8.XX.XX.XX</h3></body></html>
Memo
otxadminのloginコマンドでログイン済ならば--userオプションを指定する必要はありません。
package com.nec.webotx.jbi.binding.soap;
public interface SoapMessageHandlerIF {
public void init(java.util.Map initParam);
public boolean handleFault(javax.xml.soap.SOAPMessage soapMessage, java.util.Map properties);
public boolean handleToRouter(javax.xml.soap.SOAPMessage soapMessage, java.util.Map properties);
public boolean handleFromRouter(javax.xml.soap.SOAPMessage soapMessage, java.util.Map properties);
}
※initメソッドの引数は、endpoints.xmlから取得される初期化パラメータです。各handleメソッドで使用するときは、グローバル変数に値を保持するように実装してください。
<jbi:endpoint xmlns:jbi="http://www.sun.com/ns/jbi/component/soap/deploy"
xmlns:webotx="http://www.nec.com/WebOTX"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.sun.com/ns/jbi/component/soap/deploy ../schema/endpoints.xsd http://www.nec.com/WebOTX ../schema/endpoints_webotx.xsd ">
-
<webotx:soap_handler_chain>
<webotx:handler name="ハンドラ名" class="ハンドラクラス名">
<webotx:parameter name="パラメータ名" value="値"/>
・・・
</webotx:handler>
</webotx:soap_handler_chain>
</jbi:endpoint>
Memo
endpoints.xmlへの設定の追加はjbi:operation要素の記述の直後に記述してください。
|
要素名 |
説明 |
属性 |
子要素 |
|---|---|---|---|
|
soap_handler_chain |
この要素でSOAPエンドポイントのハンドラの設定を行います。複数のhandler要素を含みます。 |
handler [0.*] |
|
|
handler |
1つのハンドラについて設定します。 |
【マルチバイト文字列指定可】 ・name ハンドラ内で一意となるように設定します。[必須] ・class ハンドラクラスを指定します。[必須] |
parameter [0.*] |
|
parameter |
ハンドラの初期化パラメータを設定します。 |
【マルチバイト文字列指定可】 ・name パラメータ名を指定します。 ・value 値を設定します。 |
package com.nec.webotx.jbi.binding.soap.outbound;
import com.nec.webotx.jbi.binding.soap.Endpoint;
import com.nec.webotx.jbi.binding.soap.SOAPWrapper;
public interface SOAPClient{
void init(Endpoint endpointInfo);
SOAPWrapper invokeService(SOAPWrapper requestWrapper) throws Exception;
}
outboundでは、ここに示したSOAPClientインタフェースの実装クラスを作成し、invokeServiceメソッドにてSOAPメッセージを送受信するプログラムを実装します。SOAPWrapperにはSAAJで定義されているSOAPMessageの他、ESB内をノーマライズメッセージに乗って送られてきたプロパティなどをget - メソッドにて取得できるようになっています。返却値のSOAPWrapperはnew
SOAPWrapper(SOAPMessage
ms)という形で受信したSOAPメッセージからSAAJのSOAPMessageを得て作成する必要があります。また、initメソッドでendpoints.xmlで設定した初期化パラメータを得ることができます。その方法は、Endpoint型についてgetTransporthandler()でハンドラの実体を取得したあと、getParameters()メソッドにて取得することが可能です。endpoints.xmlには以下のように追記します。
【マルチバイト文字列指定可】
<jbi:endpoint xmlns:jbi="http://www.sun.com/ns/jbi/component/soap/deploy"
xmlns:webotx="http://www.nec.com/WebOTX"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.sun.com/ns/jbi/component/soap/deploy ../schema/endpoints.xsd http://www.nec.com/WebOTX ../schema/endpoints_webotx.xsd ">
-
<webotx:transporthandler name="ハンドラ名" class="ハンドラクラス名">
<webotx:parameter name="パラメータ名" value="値"/>
<webotx:parameter name="パラメータ名" value="値"/>
</webotx:transporthandler>
</jbi:endpoint>
endpoints.xmlへの設定時に、SOAPメッセージハンドラ、またはSOAPメッセージエクスチェンジハンドラが設定されている場合は、その設定の後に追記してください。共通ハンドラが設定されている場合はその設定の前に記述してください。
図2.9.1.17-1

図2.9.1.17-2
| 要素名 | 説明 | |
|---|---|---|
| 新規作成 | WSDLを指定しません。通常のエンドポイントの作成と同じ結果になります。 | |
| WSDLから作成 | WSDLのURLを指定して作成 | ネットワークに公開されているWSDLのURLを指定して読み込みます。 |
| ワークスペース内のWSDLから作成 | ワークスペース内のWSDLを指定して読み込みます。 | |

図2.9.1.17-3

図2.9.1.17-4

図2.9.1.17-5

図2.9.1.17-6

図2.9.1.17-7

図2.9.1.17-8

図2.9.1.17-9
Memo
生成できるのは SOAP サービスユニットのコンシューマを含む場合のみです。

図2.9.1.18-1

図2.9.1.18-2

図2.9.1.18-3

図2.9.1.18-4

図2.9.1.18-5
| 番号 | 属性 | 設定値 |
|---|---|---|
| @ | SU名 | No_001 |
| A | エンドポイント名 | No_002 |
| B | サービス名の名前空間URI | No_003 |
| C | オペレーション名のローカル名 | No_004 |
| D | 外部に公開するエンドポイントURL | No_005 |
<?xml version="1.0" encoding="UTF-8"?>
<definitions name="No_001" … @
targetNamespace="No_003" … B
xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="No_003" … B
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
<types>
<xsd:schema><xsd:import namespace="No_003" … B
schemaLocation="META-INF/schema/No_0012.xsd"/></xsd:schema> … @ 末尾の 2 は生成時に付加される連番。
</types>
<message name="No_004"> … C
<part name="parameters" element="tns:No_004"> … C
</part>
</message>
<message name="No_004Response"> … C
<part name="parameters" element="tns:No_004Response"> … C
</part>
</message>
<portType name="No_002"> … A
<operation name="No_004"> … C
<input message="tns:No_004"> … C
</input>
<output message="tns:No_004Response"> … C
</output>
</operation>
</portType>
<binding name="No_002_Binding" type="tns:No_002"> … A
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="No_004"> … C
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="No_001"> …
<port name="No_002_Port" binding="tns:No_002_Binding"> … A
<soap:address location="No_005"/> … D
</port>
</service>
</definitions>
SU 名 + 生成時に付加される連番.xsd
となります。 2回目の生成の場合、No_0012.xsd というファイル名になります。
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema version="1.0" targetNamespace="No_003" … B
xmlns:tns="No_003" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> … B
<xsd:element name="No_004"> … C
<xsd:complexType>
<xsd:sequence>
<xsd:element name="in" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="No_004Response"> … C
<xsd:complexType>
<xsd:sequence>
<xsd:element name="out" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
Memo
生成に必要な値が、SUエディタ、SAエディタで設定されていない場合、WSDL の該当箇所は、
"_NONE"
という値が生成されます。
Hello 入力文字列 !と言う文字列を返します。

図2.9.1.19-1

図2.9.1.19-2

図2.9.1.19-3

図2.9.1.19-4

図2.9.1.19-5

図2.9.1.19-6

図2.9.1.19-7
Memo
接続により、コンシューマのエンドポイント名やオペレーションなどの属性は、
プロバイダの設定で更新されますが、スキーマファイルの設定は更新されません。

図2.9.1.19-8
Memo
ここでは、スキーマ定義の実体を含む、Hello1.xsd を直接、指定することで
設定手順を簡略化しています。
スキーマファイルとして、プロバイダ側と同じ、Hello.xsd を指定する場合、
Hello1.xsd もコンシューマ側の META-INF/schema 配下にコピーしてください。

図2.9.1.19-9

図2.9.1.19-10

図2.9.1.19-11

図2.9.1.19-12

図2.9.1.19-13

図2.9.1.19-14

図2.9.1.19-15

図2.9.1.19-16