SOAP を利用した転送を行う場合、サービスエンドポイント定義に、SOAP通信で必要な情報を定義します。
SOAPの定義には、以下の種類があります。
インバウンド非同期
インバウンド同期
アウトバウンド非同期
アウトバウンド同期
インバウンド非同期のサービスエンドポイント定義の指定例は、以下のとおりです。
サービスエンドポイント定義で使用するサービスエンドポイント名は、サービス利用側からの送信先となるURLの後ろのクエリストリングで指定されます。
また、インバウンドルーティングを利用する場合は、ルーティング定義の振分け先サービスエンドポイント名で指定されます。
インバウンドルーティング定義名の指定については、“ISI 導入ガイド”を参照してください。
指定例
サービスエンドポイント定義
<?xml version="1.0" encoding="UTF-8" ?>
<EndpointList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="esi-endpoint.xsd">
<Endpoint name="endpoint01" sync="false">
<QueueName>ESIInboundQueue</QueueName>
<SequenceName>sequence01</SequenceName>
<ServiceName>msg_ws</ServiceName>
</Endpoint>
</EndpointList> |
キー名 | 説明 | 指定例 |
---|---|---|
Endpoint | ||
name | サービスエンドポイント名を指定します。 | endpoint01 |
sync | サービスエンドポイントの同期タイプ“false”(非同期通信)を指定します。 | false |
QueueName | JMSキュー名を指定します。 | ESIInboundQueue |
SequenceName | シーケンス名を指定します。シーケンス定義に指定したシーケンス名を指定してください。 | sequence01 |
ServiceName | サービス名を指定します。サービス情報に指定したサービス名を指定してください。 | msg_ws |
サービス情報
<?xml version="1.0" encoding="UTF-8" ?>
<Service name="msg_ws" type="SOAP-MSG" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="esi-service.xsd">
<PropertyList>
<Property name="jmsr.messageAccumulate">true</Property>
</PropertyList>
</Service> |
キー名 | 説明 | 指定例 |
---|---|---|
Service | ||
name | サービス名を指定します。 | msg_ws |
type | サービスのタイプ“SOAP-MSG”を指定します。 | SOAP-MSG |
Property | ||
jmsr.messageAccumulate | JMS-Rキューを使用する場合、メッセージを蓄積するかどうかを指定します。
| true |
インバウンド同期のサービスエンドポイント定義の指定例は、以下のとおりです。
サービスエンドポイント定義で使用するサービスエンドポイント名は、サービス利用側からの送信先となるURLの後ろのクエリストリングで指定されます。
また、インバウンドルーティングを利用する場合は、ルーティング定義の振分け先サービスエンドポイント名で指定されます。
インバウンドルーティング定義名の指定については、“ISI 導入ガイド”を参照してください。
指定例
サービスエンドポイント定義
<?xml version="1.0" encoding="UTF-8" ?>
<EndpointList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="esi-endpoint.xsd">
<Endpoint name="endpoint01" sync="true">
<SequenceName>sequence01</SequenceName>
<ServiceName>msg_ws</ServiceName>
</Endpoint>
</EndpointList> |
キー名 | 説明 | 指定例 |
---|---|---|
Endpoint | ||
name | サービスエンドポイント名を指定します。 | endpoint01 |
sync | サービスエンドポイントの同期タイプ“true”(同期通信)を指定します。 | true |
SequenceName | シーケンス名を指定します。シーケンス定義に指定したシーケンス名を指定してください。 | sequence01 |
ServiceName | サービス名を指定します。サービス情報に指定したサービス名を指定してください。 | msg_ws |
サービス情報
<?xml version="1.0" encoding="UTF-8" ?>
<Service name="msg_ws" type="SOAP-MSG" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="esi-service.xsd">
</Service> |
キー名 | 説明 | 指定例 |
---|---|---|
Service | ||
name | サービス名を指定します。 | msg_ws |
type | サービスのタイプ“SOAP-MSG”を指定します。 | SOAP-MSG |
アウトバウンド非同期のサービスエンドポイント定義の指定例は、以下のとおりです。
メッセージ送信呼出時の共通メッセージのペイロードに、SOAPメッセージ(XML文書)が格納されている必要があります。
指定例
サービスエンドポイント定義
<?xml version="1.0" encoding="UTF-8" ?>
<EndpointList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="esi-endpoint.xsd">
<Endpoint name="endpoint01" sync="false">
<QueueName>ESISendQueue</QueueName>
<ServiceName>service01</ServiceName>
</Endpoint>
</EndpointList> |
キー名 | 説明 | 指定例 |
---|---|---|
Endpoint | ||
name | サービスエンドポイント名を指定します。 | endpoint01 |
sync | サービスエンドポイントの同期タイプ“false”(非同期通信)を指定します。 | false |
QueueName | JMSキュー名を指定します。 | ESISendQueue |
ServiceName | サービス名を指定します。サービス情報に指定したサービス名を指定してください。 | service01 |
サービス情報
<?xml version="1.0" encoding="UTF-8" ?> <Service name="service01" type="SOAP" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="esi-service.xsd"> <Description>0</Description> <PropertyList> <Property name="JCA.Version" secret="false">1</Property> <Property name="JCA.JNDI.name" secret="false">java:comp/env/eis/esisoapadapter</Property> <Property name="JCA.Interaction.ImplClass.type" secret="false">bool_return</Property> <Property name="JCA.InteractionSpec.ImplClass.name" secret="false">com.fujitsu.esi.adapter.soap.outbound.cci.ESISoapAdapterInteractionSpec</Property> <Property name="JCA.InteractionSpec.Param1.name" secret="false">setResponseSet</Property> <Property name="JCA.InteractionSpec.Param1.type" secret="false">boolean</Property> <Property name="JCA.InteractionSpec.Param1.value" secret="false">true</Property> <Property name="JCA.InteractionSpec.Param2.name" secret="false">setReqrespParameter</Property> <Property name="JCA.InteractionSpec.Param2.type" secret="false">String</Property> <Property name="JCA.InteractionSpec.Param2.value" secret="false">usr.param1,usr.param2</Property> <Property name="JCA.InteractionSpec.Param3.name" secret="false">setResponseEndpoint</Property> <Property name="JCA.InteractionSpec.Param3.type" secret="false">String</Property> <Property name="JCA.InteractionSpec.Param3.value" secret="false">endpointRsp</Property> <Property name="JCA.InteractionSpec.Param4.name" secret="false">setTimeout</Property> <Property name="JCA.InteractionSpec.Param4.type" secret="false">int</Property> <Property name="JCA.InteractionSpec.Param4.value" secret="false">60000</Property> <Property name="JCA.InteractionSpec.Param5.name" secret="false">setSoapAction</Property> <Property name="JCA.InteractionSpec.Param5.type" secret="false">String</Property> <Property name="JCA.InteractionSpec.Param5.value" secret="false">callBytes</Property> <Property name="JCA.InteractionSpec.Param6.name" secret="false">setParse</Property> <Property name="JCA.InteractionSpec.Param6.type" secret="false">boolean</Property> <Property name="JCA.InteractionSpec.Param6.value" secret="false">true</Property> <Property name="JCA.InteractionSpec.Param7.name" secret="false">setFaultHandle</Property> <Property name="JCA.InteractionSpec.Param7.type" secret="false">boolean</Property> <Property name="JCA.InteractionSpec.Param7.value" secret="false">true</Property> <Property name="JCA.ConnectionSpec.ImplClass.name" secret="false">com.fujitsu.esi.adapter.soap.outbound.cci.ESISoapAdapterConnectionSpec</Property> <Property name="JCA.ConnectionSpec.Param0.name" secret="false">setServiceName</Property> <Property name="JCA.ConnectionSpec.Param0.type" secret="false">@INPUT</Property> <Property name="JCA.ConnectionSpec.Param0.value" secret="false">SERVICE_NEME</Property> <Property name="JCA.ConnectionSpec.Param1.name" secret="false">setUrlEndpoint</Property> <Property name="JCA.ConnectionSpec.Param1.type" secret="false">String</Property> <Property name="JCA.ConnectionSpec.Param1.value" secret="false">http://MyHost/esisoap/services/ESISoapRpcProvider</Property> <Property name="JCA.ConnectionSpec.Param2.name" secret="false">setBasicAuthSet</Property> <Property name="JCA.ConnectionSpec.Param2.type" secret="false">boolean</Property> <Property name="JCA.ConnectionSpec.Param2.value" secret="false">true</Property> <Property name="JCA.ConnectionSpec.Param3.name" secret="false">setBasicAuthUsr</Property> <Property name="JCA.ConnectionSpec.Param3.type" secret="false">String</Property> <Property name="JCA.ConnectionSpec.Param3.value" secret="false">userName</Property> <Property name="JCA.ConnectionSpec.Param4.name" secret="false">setBasicAuthPwd</Property> <Property name="JCA.ConnectionSpec.Param4.type" secret="false">String</Property> <Property name="JCA.ConnectionSpec.Param4.value" secret="true">userPassword</Property> <Property name="JCA.ConnectionSpec.Param5.name" secret="false">setProxySet</Property> <Property name="JCA.ConnectionSpec.Param5.type" secret="false">boolean</Property> <Property name="JCA.ConnectionSpec.Param5.value" secret="false">true</Property> <Property name="JCA.ConnectionSpec.Param6.name" secret="false">setNonProxyHosts</Property> <Property name="JCA.ConnectionSpec.Param6.type" secret="false">String</Property> <Property name="JCA.ConnectionSpec.Param6.value" secret="false">localhost|*.myhost.com</Property> <Property name="JCA.ConnectionSpec.Param7.name" secret="false">setProxyHost</Property> <Property name="JCA.ConnectionSpec.Param7.type" secret="false">String</Property> <Property name="JCA.ConnectionSpec.Param7.value" secret="false">proxy.proxyhost.com</Property> <Property name="JCA.ConnectionSpec.Param8.name" secret="false">setProxyPort</Property> <Property name="JCA.ConnectionSpec.Param8.type" secret="false">String</Property> <Property name="JCA.ConnectionSpec.Param8.value" secret="false">8080</Property> <Property name="JCA.ConnectionSpec.Param9.name" secret="false">setProxyAuthSet</Property> <Property name="JCA.ConnectionSpec.Param9.type" secret="false">boolean</Property> <Property name="JCA.ConnectionSpec.Param9.value" secret="false">true</Property> <Property name="JCA.ConnectionSpec.Param10.name" secret="false">setProxyAuthUsr</Property> <Property name="JCA.ConnectionSpec.Param10.type" secret="false">String</Property> <Property name="JCA.ConnectionSpec.Param10.value" secret="false">proxyUserName</Property> <Property name="JCA.ConnectionSpec.Param11.name" secret="false">setBasicAuthPwd</Property> <Property name="JCA.ConnectionSpec.Param11.type" secret="false">String</Property> <Property name="JCA.ConnectionSpec.Param11.value" secret="true">proxyPassword</Property> <Property name="JCA.InputRecord.type" secret="false">Mapped</Property> <Property name="JCA.InputRecord.Map1.name" secret="false">com.fujitsu.esi.jca.payload</Property> <Property name="JCA.InputRecord.Map1.type" secret="false">payload</Property> <Property name="JCA.InputRecord.Map2.name" secret="false">com.fujitsu.esi.jca.header</Property> <Property name="JCA.InputRecord.Map2.type" secret="false">headerSet</Property> <Property name="JCA.InputRecord.Map2.value" secret="false">com.fujitsu.esi</Property> <Property name="JCA.OutputRecord.type" secret="false">Mapped</Property> <Property name="JCA.OutputRecord.Map1.name" secret="false">com.fujitsu.esi.jca.payload</Property> <Property name="JCA.OutputRecord.Map1.type" secret="false">payload</Property> <Property name="JCA.OutputRecord.Map2.name" secret="false">com.fujitsu.esi.jca.header</Property> <Property name="JCA.OutputRecord.Map2.type" secret="false">headerSet</Property> <Property name="JCA.OutputRecord.Map2.value" secret="false">com.fujitsu.esi</Property> </PropertyList> </Service> |
定義項目
Propertyについてはユーザが指定する項目について表に記載します。
この表で記載した以外の項目は必須ですのでそのままサービス情報に記載してください。
キー名 | 説明 | 指定例 | |
---|---|---|---|
Service | |||
name | サービス名を指定します。 | service01 | |
type | サービスのタイプ“SOAP”を指定します。 | SOAP | |
Property | |||
JCA.InteractionSpec.Param1.value | レスポンス処理を実行するかどうかを指定します。
| true | |
JCA.InteractionSpec.Param2.value | レスポンス処理を実行する場合に、メッセージ送信された共通メッセージのヘッダ情報からコピーするパラメタ名を指定します。 | usr.param1,usr.param2 | |
JCA.InteractionSpec.Param3.value | レスポンスを格納するサービスエンドポイント定義名を指定します。 | endpointRsp | |
JCA.InteractionSpec.Param4.value | 接続のタイムアウト時間をミリ秒で指定します。
デフォルトは、利用するSOAPエンジンに依存します。 Interstage Application Server:300000(5分) | 60000 | |
JCA.InteractionSpec.Param5.value | 接続先のWebサービスが要求するSOAP Actionを指定します。 | callBytes | |
JCA.InteractionSpec.Param6.value | SOAPメッセージの妥当性検証を行うかどうかを指定します。
| true | |
JCA.InteractionSpec.Param7.value | Webサービス呼び出し結果がSOAP Faultだった場合にシーケンスをエラーにするかどうかを指定します。
| true | |
JCA.ConnectionSpec.Param1.value | 接続先のURLを指定します。 | http://MyHost/esisoap/services/ESISoapRpcProvider | |
JCA.ConnectionSpec.Param2.value | Basic認証を行うかどうかを指定します。
| true | |
JCA.ConnectionSpec.Param3.value | “JCA.ConnectionSpec.Param2.value”にtrueを指定した場合、Basic認証のログインユーザ名を指定します。 | userName | |
JCA.ConnectionSpec.Param4.value | “JCA.ConnectionSpec.Param2.value”にtrueを指定した場合、Basic認証のログインパスワードを指定します。 | userPassword | |
| secret | プロパティの情報(パスワードなど)を暗号化するかどうかを指定します。
| true |
JCA.ConnectionSpec.Param5.value | Proxyサーバを利用するかどうかを指定します。
| true | |
JCA.ConnectionSpec.Param6.value | プロキシを経由せずに接続するホスト名を指定します。 | localhost|*.myhost.com | |
JCA.ConnectionSpec.Param7.value | “JCA.ConnectionSpec.Param5.value”に“true”を指定した場合、Proxyサーバのホスト名を指定します。 | proxy.proxyhost.com | |
JCA.ConnectionSpec.Param8.value | “JCA.ConnectionSpec.Param5.value”に“true”を指定した場合、Proxyサーバのポート番号を指定します。 | 8080 | |
JCA.ConnectionSpec.Param9.value | Proxyサーバで利用者認証を行うかどうかを指定します。以下のいずれかを指定します。
| true | |
JCA.ConnectionSpec.Param10.value | “JCA.ConnectionSpec.Param9.value”に“true”を指定した場合、Proxyサーバのログインユーザ名を指定します。 | proxyUserName | |
JCA.ConnectionSpec.Param11.value | “JCA.ConnectionSpec.Param9.value”に“true”を指定した場合、Proxyサーバのログインパスワードを指定します。 | proxyPassword | |
| secret | プロパティの情報(パスワードなど)を暗号化するかどうかを指定します。
| true |
サービス情報でレスポンス処理を指定し、かつ、通信先がOneway方式のWebサービスでレスポンスにSOAPメッセージを含まない場合は、レスポンス処理で格納される共通メッセージのペイロードは空になります。
同期処理のサービスエンドポイント定義の指定例は、以下のとおりです。
サービス呼出時の共通メッセージのペイロードに、SOAPメッセージが格納されている必要があります。
指定例
サービスエンドポイント定義
<?xml version="1.0" encoding="UTF-8" ?>
<EndpointList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="esi-endpoint.xsd">
<Endpoint name="outbound02" sync="true">
<ServiceName>service01</ServiceName>
</Endpoint>
</EndpointList> |
キー名 | 説明 | 指定例 |
---|---|---|
Endpoint | ||
name | サービスエンドポイント名を指定します。 | outbound02 |
sync | サービスエンドポイントの同期タイプ“true”(同期通信)を指定します。 | true |
ServiceName | サービス名を指定します。サービス情報に指定したサービス名を指定してください。 | service01 |
サービス情報
<?xml version="1.0" encoding="UTF-8" ?>
<Service name="service01" type="SOAP-MSG" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="esi-service.xsd">
<PropertyList>
<Property name="soap.urlEndpoint">http://MyHost/esisoap/services/ESISoapRpcProvider</Property>
<Property name="soap.basicAuthSet">true</Property>
<Property name="soap.basicAuthUsr">userName</Property>
<Property name="soap.basicAuthPwd" secret="true">userPassword</Property>
<Property name="soap.proxySet">true</Property>
<Property name="soap.nonProxyHosts">localhost|*.myhost.com</Property>
<Property name="soap.proxyHost">proxy.proxyhost.com</Property>
<Property name="soap.proxyPort">8080</Property>
<Property name="soap.proxyAuthSet">true</Property>
<Property name="soap.proxyAuthUsr">proxyUserName</Property>
<Property name="soap.proxyAuthPwd" secret="true">proxyPassword</Property>
<Property name="soap.timeout">60000</Property>
<Property name="soap.parse">false</Property>
</PropertyList>
</Service> |
定義項目
Propertyについてはユーザが指定する項目について表に記載します。
この表で記載した以外の項目は必須ですのでそのままサービス情報に記載してください。
キー名 | 説明 | 指定例 | |
---|---|---|---|
Service | |||
name | サービス名を指定します。 | service01 | |
type | サービスのタイプ“SOAP”を指定します。 | SOAP | |
Property | |||
JCA.InteractionSpec.Param4.value | 接続のタイムアウト時間をミリ秒で指定します。
デフォルトは、利用するSOAPエンジンに依存します。 Interstage Application Server:300000(5分) | 60000 | |
JCA.InteractionSpec.Param5.value | 接続先のWebサービスが要求するSOAP Actionを指定します。 | callBytes | |
JCA.InteractionSpec.Param6.value | SOAPメッセージの妥当性検証を行うかどうかを指定します。
| true | |
JCA.InteractionSpec.Param7.value | Webサービス呼び出し結果がSOAP Faultだった場合にシーケンスをエラーにするかどうかを指定します。
| true | |
JCA.ConnectionSpec.Param1.value | 接続先のURLを指定します。 | http://MyHost/esisoap/services/ESISoapRpcProvider | |
JCA.ConnectionSpec.Param2.value | Basic認証を行うかどうかを指定します。
| true | |
JCA.ConnectionSpec.Param3.value | “JCA.ConnectionSpec.Param2.value”にtrueを指定した場合、Basic認証のログインユーザ名を指定します。 | userName | |
JCA.ConnectionSpec.Param4.value | “JCA.ConnectionSpec.Param2.value”にtrueを指定した場合、Basic認証のログインパスワードを指定します。 | userPassword | |
| secret | プロパティの情報(パスワードなど)を暗号化するかどうかを指定します。
| true |
JCA.ConnectionSpec.Param5.value | Proxyサーバを利用するかどうかを指定します。
| true | |
JCA.ConnectionSpec.Param6.value | プロキシを経由せずに接続するホスト名を指定します。 | localhost|*.myhost.com | |
JCA.ConnectionSpec.Param7.value | “JCA.ConnectionSpec.Param5.value”に“true”を指定した場合、Proxyサーバのホスト名を指定します。 | proxy.proxyhost.com | |
JCA.ConnectionSpec.Param8.value | “JCA.ConnectionSpec.Param5.value”に“true”を指定した場合、Proxyサーバのポート番号を指定します。 | 8080 | |
JCA.ConnectionSpec.Param9.value | Proxyサーバで利用者認証を行うかどうかを指定します。以下のいずれかを指定します。
| true | |
JCA.ConnectionSpec.Param10.value | “JCA.ConnectionSpec.Param9.value”に“true”を指定した場合、Proxyサーバのログインユーザ名を指定します。 | proxyUserName | |
JCA.ConnectionSpec.Param11.value | “JCA.ConnectionSpec.Param9.value”に“true”を指定した場合、Proxyサーバのログインパスワードを指定します。 | proxyPassword | |
| secret | プロパティの情報(パスワードなど)を暗号化するかどうかを指定します。
| true |