複数のキュー・タイプと複数のメッセージング・プロトコルを保守するために、4.2 では新規キュー機能がインプリメントされました。キューは、EAI プラットフォームおよび Web サーバーを含む、外部ソース / 宛先とのインバウンドおよびアウトバウンド・メッセージングを扱うゲートウェイの役目を果たします。
注: メッセージング・フレームワークのセットアップに関する情報は、『メッセージング・フレームワークのインプリメント』セクションで扱われています。
参考のため、以下の用語が定義されています。
- キュー - WebSphere Product Center が作成する、メッセージの受信ポイントおよび送信ポイントとしての機能を果たすもの。 スクリプトは、各キューをサポートします。
- メッセージ - UCCnet、EAI プラットフォーム、データ・プール、または他のメッセージ送信元によって提供される XML 文書。
新規キュー機能を使用すると、ジョブがインポートまたはエクスポートされる際のプロセスの一部としてメッセージを使用でき、状況メッセージをすべての必要なユーザーに送信できます。
キュー・コンソールへのアクセス
メニュー・パス「コラボレーション・マネージャー」>「キュー」>「キュー・コンソール」を使用すると、キュー・コンソールが表示されます。
「キューの詳細 (Queue Details)」の表示
キューの詳細を表示するには、「キュー名」をクリックすると「キューの詳細 (Queue Detail)」画面が表示されます。以下の情報が提供されます。
- キュー名
- 説明
- プロトコル
- スクリプト
キュー内のメッセージの表示
キュー・コンソールには「メッセージ」という名前の列があり、この列にはキューが受信したメッセージの番号にハイパーリンクが貼られています。メッセージの番号をクリックすると、メッセージの内容が表示されます。
キュー内のメッセージの検索
1. キュー内のメッセージを検索するには、メニュー・パス「コラボレーション・マネージャー」>「キュー」>「メッセージ・コンソール」を使用します。「キュー・メッセージの検索」画面が表示されます。
2. 以下のフィールドの値を選択します。
- 到着開始日
- 到着終了日
3. 「検索」をクリックすると、「キュー・メッセージ」テーブル下部に結果が表示されます。
キューの作成
1. メニュー・パス「コラボレーション・マネージャー」>「キュー」>「新規キュー」を使用します。
2. 必要な情報を入力します。
キュー名: キューの名前を入力します。
説明: キューの説明を入力します。
プロトコル: 外部ソースをキューに、またはキューから結合するのに使用するメッセージング・プロトコルのリストから選択します。
スクリプト: キューへの、またキューからのメッセージの経路指定を実行する、事前に作成されたスクリプトのリストから選択します。宛先 / ソースへの典型的なメッセージには、以下のものが含まれます。
- ワークフロー・コラボレーション・エリア。ワークフロー・ステップにおいてイン・スクリプトまたはアウト・スクリプトでサポートされます。
- カタログ。プリプロセス、ポストプロセッシング、またはポストセーブ・スクリプトでサポートされます。
WebSphere Product Center のメッセージング・フレームワークのインプリメンテーションによって、以下のターゲット EAI プラットフォームとの統合が可能になります。
- IBM WBI
- SeeBeyond
- Tibco
- WebMethods
選択したプラットフォームで、信頼性のあるトランスポート・メカニズム、異なるシステムまたはプラットフォームで相互に通信する複数のプログラムでの一貫性のあるインターフェースが提供される必要があります。
WebSphere Product Center のメッセージング・フレームワークは、以下のプロセスをサポートするよう設計されています。
- 受信時の確認通知メッセージの提供を含む、アイテム・セットが含まれるメッセージの受信
- 送信後の確認通知メッセージの受信を含む、アイテム・セットが含まれるメッセージの送信
WebSphere Product Center には、XML 文書を解析して作成する機能、およびメッセージを送信する機能、さらには EAI プラットフォーム・キューからメッセージを収集する機能が備えられています。 メッセージは、外部ソースによって提供される XML 文書として定義されます。こうしたすべての機能は、WebSphere Product Center スクリプト・エンジンからアクセスできます。WebSphere Product Center と EAI プラットフォーム・アダプター間の対話を使用可能にするには、この機能を十分に活用するスクリプトをインストールする必要があります。
WebSphere Product Center はキューをサポートしています。キューは、メッセージの受信および送信ポイントとしての機能を果たす 1 つの構造です。WebSphere Product Center のキューは、外部ソース / 宛先とのインバウンドおよびアウトバウンド・メッセージングを扱うゲートウェイの役目を果たします。また各キューは、WebSphere Product Center のスクリプト操作でサポートされています。
キューでは、以下の機能が提供されています。
メッセージ送信プロトコルのセットアップを使用可能にして、キューへの、およびキューからの外部メッセージ・ソースを結合し、以下のメッセージ送信プロトコルを提供します。
- MQ
- JMS Point-to-Point
- JMS パブリッシュおよびサブスクライブ
- HTTP
- HTTP/S
スクリプトを実行して、キューへの、またはキューからのメッセージを経路指定します。標準的なメッセージ宛先 / ソースには、以下のものが含まれます。
- ワークフロー・コラボレーション・エリア。ワークフロー・ステップにおいてイン・スクリプトまたはアウト・スクリプトでサポートされます。
- カタログ。プリプロセス、ポストプロセッシング、またはポストセーブ・スクリプトでサポートされます。
以下のリストは、メッセージング機能のフレームワークを描写しています。
- 外部ソースは、メッセージを EAI プラットフォームに送信します。その処理の際に問題となる事柄は外部ソースによって異なります。また、WebSphere Product Center がメッセージを検索する方法には影響を与えません。
- EAI プラットフォームのセットアップには、インバウンドおよびアウトバウンド・キューが含まれている必要があります。このセットアップはサード・パーティーによって行われ、メッセージを検索して送信するために WebSphere Product Center が取得しておくべき必要な情報は、WebSphere Product Center がアクセスするキューの ID のみです。
- ファイルが EAI プラットフォーム・キューに置かれると、WebSphere Product Center にセットアップされた該当するキューにおいて、サポートされるプロトコル (MQ、HTTP/s、または JMS) を介してメッセージを検索できます。
- WebSphere Product Center スクリプトを使用すると、メッセージ本体を解析して、メッセージ・タイプ、メッセージ ID、およびメッセージ・ソースを取得します。 この情報は、すべてのメッセージを含めるために作成されたターゲット WebSphere Product Center カタログに経路指定されます。
- D で生じたイベントはワークフローを使用して追跡され、メッセージが正常に記録された場合には、イベントによって通知確認ワークフローが起動し、メッセージ・カタログからの新規レコードをコラボレーション・エリア・セットアップにチェックアウトします。
- 確認通知ワークフローは、確認のために確認通知メッセージをメッセージ・ソースに送信します。これがなされると、確認通知ワークフローはカタログにメッセージをチェックインして戻します。
このプロセスが正しく機能するためには、メッセージング・フレームワークが構築されている必要があります。
メッセージング・フレームワークの構築
以下のプロセスは、EAI プラットフォーム・フレームワークを統合するための提案されているメソッドについて略述しています。このプロセスは、特定の要件に応じてカスタマイズできます。
メッセージの受信
このセクションは、受信における確認通知メッセージの提供を含む、アイテム・セットが含まれるメッセージの受信プロセスについて説明しています。2 つのプロセス、セットアップとランタイムが、メッセージの受信プロセスをサポートしています。 このプロセスは汎用でありほとんどの目的に応用できます。
セットアップ
1. テクニカル・ビジネス・プロセス・アナリストが以下のものを作成します。
2. テクニカル・ビジネス・プロセス・アナリストは、スクリプトが含まれるインバウンド・キューを作成します。このスクリプトは 3 つの機能 (メッセージ受信、メッセージ本体の解析、およびルーティング) をサポートしています。
メッセージ受信
スクリプトのメッセージ受信セクションは、以下の機能をサポートしてます。
- MQ、HTTP/S、または JMS を含むサポートされているプロトコルを介して、ソースからメッセージを取得します。
- メッセージ本体を解析して、メッセージ・タイプ、メッセージ ID、メッセージ・ソースを取得します。
- メッセージ・タイプ、メッセージ ID、差出人 ID、および日時を含むレコードをメッセージ・カタログに作成します。
- 通知確認ワークフローにイベントを起動します。確認通知ワークフロー機能については、下記を参照してください。
メッセージ本体の解析
スクリプトのメッセージ本体の解析セクションは、以下の機能をサポートしています。
- パラメーターとして、ソースから宛先へのマップ名とターゲット・カタログ名を組み込みます。
- アイテム・セットにレンダリングする、ソースから宛先へのマップ名とターゲット・カタログ名ごとのメッセージ本体を解析します。
メッセージ・ルーティング
スクリプトのルーティング・セクションは、以下の機能をサポートしています。
ターゲット・カタログから、アイテム・セット内のアイテムを追加 / 変更 / 削除します。
- テクニカル・ビジネス・プロセス・アナリストは、受信確認通知メッセージの送信のために、確認通知ワークフローをセットアップします。 このワークフローには、以下の機能があります。
- メッセージ・カタログからの新規レコードを、確認通知ワークフローのステップ内のコラボレーション・エリアにチェックアウトします。
- 確認通知ワークフロー内の次のステップでは、メッセージ ID、送信者 ID、日時、およびメッセージ・ソースで必要とされる任意のコマンド (たとえば、Received) が含まれるメッセージ・ソースに、メッセージを送信します。
- 確認通知ワークフローの次のステップでは、メッセージ・カタログ・レコードにチェックインします。
ランタイム
セットアップが正しく構成されたら、以下のランタイム・イベントが生じる必要があります。
1. キュー・スクリプトのメッセージ受信セクションによって、キューがメッセージを受信します。
2. キュー・スクリプトのメッセージ受信セクションがメッセージ本体を解析して、メッセージ・タイプ、メッセージ ID、および送信者 ID を取得します。
3. キュー・スクリプトのメッセージ受信セクションが、メッセージ・タイプ、メッセージ ID、差出人 ID、および日時を含むレコードをメッセージ・カタログに作成します。
4. キュー・スクリプトのメッセージ受信セクションが、メッセージ・カタログからの新規レコードを、確認通知ワークフローのステップ内のコラボレーション・エリアにチェックアウトします。
5. 確認通知ワークフロー内の次のステップでは、メッセージ ID、送信者 ID、日時、およびメッセージ・ソースで必要とされる任意のコマンド (たとえば、Received) が含まれるメッセージ・ソースに、メッセージを送信します。
6. 確認通知ワークフローの次のステップでは、メッセージ・カタログ・レコードにチェックインします。
7. キュー・スクリプトのメッセージ本体の解析セクションが、アイテム・セットにレンダリングする、マップ名とターゲット・カタログ名ごとにメッセージ本体を解析します (後ほど言及する新規スクリプト操作を使用します)。
8. キュー・スクリプトのルーティング・セクションが、カタログの追加 / 変更 / 削除のための既存のスクリプト操作を使用して、ターゲット・カタログからアイテム・セット内のアイテムを追加 / 変更 / 削除します。
WebSphere Product Center インバウンド/アウトバウンド・キューの作成
WebSphere Product Center インバウンドおよびアウトバウンド・キューは、キュー・コンソールを使用して作成されます。キューを作成する前に、スクリプト・コンソールからターゲット・スクリプトを作成する必要があります。「新規キュー」画面の「トリガー・スクリプト・パス (Trigger Script Path)」ドロップダウン・フィールドにトリガー・スクリプトが表示されます。
1. キュー・コンソールで、「新規」をクリックします。
2. 「キューの詳細 (Queue Detail)」画面で、キュー名、説明を入力して、プロトコルおよびトリガー・スクリプト・パスを選択します。 トリガー・スクリプトは、「メッセージ・キュー・プロセッサー」タイプのスクリプト・コンソールで作成されます。
3.「保管」をクリックします。
WebSphere Product Center のスクリプト操作により、WebSphere Product Center スクリプト・アプリケーションを書く際に、各スクリプト操作の引き数に能力を定義できるようになり、柔軟性が増します。このセクションで示されている以下のスクリプト操作は、MQ または JMS を使用する WebSphere Product Center でサポートされているメッセージング機能をサポートするために使用します。こうした方式を使用すると、外部キューからメッセージのインポートおよびエクスポートが可能になります。
注: このセクションにリストされているスクリプト操作は変更されることがあります。 最新のスクリプト操作については、「スクリプト・サンドボックス」を参照してください。
MQ スクリプト操作
スクリプト・アプリケーションを作成する際に、スクリプト操作 mqGetQueueMgr はハンドルと共にハンドラーを MQQueueManager に戻します。ハンドルを解放するために mqDisconnect を呼び出す前に、そのハンドルを使って複数の MQ 操作を行うことができます。
mqGetQueueMgr
- プロトタイプ: MQQueueManager mqGetQueueMgr(String hostname, String port, String channel, String queueMgrName)
- 説明: 指定のプロパティーを持つ新規 MQ キュー・マネージャーを作成して、戻します。
mqDisconnect
- void MQQueueManager::mqDisconnect()
- 指定のキュー・マネージャーから切断します。
mqSendTextMsg
- プロトタイプ: MQMessage MQQueueManager::mqSendTextMsg(String msgText, String queueName, String queueOpenOptions, String messagePutOptions)
- 説明: String msgText で提供されるメッセージを queueName に送信します。MQMessage を戻します。
注: mqSendReply を使用して指定されたメッセージへの返信を送信しようとする場合、mqSendTextMsg を使用するとエラーが戻ります。これを防ぐには、mqSendTextMsgWithReply を使用します。
mqSendTextMsgWithReply
- プロトタイプ: MQMessage MQQueueManager::mqSendTextMsgWithReply(String msgText, String queueName, String replyQueueName, String queueOpenOptions, String messagePutOptions)
- 説明: String msgText で提供されるメッセージを queueName に送信します。返信キューが指定されます。MQMessage オブジェクトを戻します。
mqGetTextFromMsg
- プロトタイプ: String mqGetTextFromMsg(MQMessage mqMessage)
- 説明: ヘッダーを含む、MQMessage のコンテンツ全体が含まれるストリングを戻します。
mqGetReceivedMsg
- プロトタイプ: MQMessage MQQueueManager::mqGetReceivedMsg(String queueName, String queueOpenOptions, String messageGetOptions)
- 説明: queueName からのメッセージを受信します。 MQMessage としてメッセージを戻すか、ヌルを戻します。
注: メッセージが検索されると、キューから除去されます。メッセージ ID を指定しない場合、キューの最初のメッセージが取得されます。
mqSendReply
- プロトタイプ: MQMessage MQQueueManager::mqSendReply(MQMessage receivedMsg, String msgText, String passedInQueueOpenOptions, String passedInMessagePutOptions)
- 説明: 成功または失敗を示すことなく、指定されたメッセージに返信を送信します。
mqSendReplyWithStatus
- プロトタイプ: MQMessage MQQueueManager::mqSendReplyWithStatus(MQMessage receivedMsg, String msgText, String status, String passedInQueueOpenOptions, String passedInMessagePutOptions)
- 説明: 指定の状況を示すフィードバック・フィールドを設定して、指定のメッセージに返信を送信します。状況は以下のいずれかでなければなりません (大文字または小文字): SUCCESS、FAIL、VALCHANGE、VALDUPES、MULTIPLE_HITS、FAIL_RETRIEVE_BY_CONTENT、BO_DOES_NOT_EXIST、UNABLE_TO_LOGIN、APP_RESPONSE_TIMEOUT、NONE。
注: 使用できるのは 1 つの状況値だけです。
mqGetXMLMessageContent
- プロトタイプ: String mqGetXMLMessageContent(String orgXmlMsg)
- 説明: XML 文書を取得するため、入力ストリングの先頭から不要情報を廃棄します。 より正確には、以下のように動作します。 入力ストリングの形式を A + B とし、B は有効な XML 文書で、A は任意のストリング (空も可) です。この操作では B を戻します。その他の場合にはヌルを戻します。
注: 着信メッセージを解析するためにこのメソッドを使用します。
mqGetResponseToMsg
- プロトタイプ: MQMessage MQQueueManager::mqGetResponseToMsg(MQMessage outgoingMessage, String queueOptions, String messageOptions)
- 説明: 指定のキューから指定のメッセージへの応答を取得します。
mqGetMessageDiagnostics
- プロトタイプ: String mqGetMessageDiagnostics(MQMessage message)
- 説明: 指定のメッセージの診断情報が含まれるストリングを戻します。
mqGetMessageId
- プロトタイプ: String MQMessage::mqGetMessageId()
- 説明: 指定のメッセージの ID を、16 進数を含むストリングとして戻します。
mqGetReceivedMsgByMessageID
- プロトタイプ: MQMessage MQQueueManager::mqGetReceivedMsgByMessageID(String queueName, String messageId, String passedInQueueOpenOptions, String passedInMessageGetOptions)
- 説明: 指定のキューで、指定のメッセージ ID のメッセージを検索します。 ID は、16 進数を含むストリングとして渡されます。 指定のキュー内にこうしたメッセージがない場合には、ヌルが戻ります。
JMS スクリプト操作
スクリプト・アプリケーションを作成すると、スクリプト操作 jmsGetConnectionFactory はハンドルと共にハンドラーを QueueConnectionFactory に戻します。ハンドルを解放するために jmsDisconnect を呼び出す前に、そのハンドルを使って複数の JMS 操作を行うことができます。
jmsGetContext
- プロトタイプ: Context jmsGetContext(String url, String jndiFactory)
- 操作: JMS コンテキストを作成します。
jmsGetConnectionFactory
- プロトタイプ: QueueConnectionFactory Context::jmsGetConnectionFactory(String jmsFactory)
- 操作: 指定されたコンテキストの JMS 接続ファクトリーを作成して、戻します。
jmsGetMQConnectionFactory
- プロトタイプ: QueueConnectionFactory jmsGetMQConnectionFactory(String mqQueueManager, String mqHostname, String mqChannel, Integer mqPort)
- 説明: MQ キューと通信するための JMS 接続ファクトリーを作成して、戻します。他の JMS キューに接続する場合にはコンテキストが必要なのに対して、MQ 接続ファクトリーを取得するにはコンテキストが必要ないことに注意してください。
jmsGetQueueByName
- プロトタイプ: javax.jms.Queue jmsGetQueueByName(Context ctx, String name)
- 説明: 指定の JNDI 名とコンテキストから javax.jms.Queue オブジェクトを戻します。
jmsGetQueueConnection
- プロトタイプ: QueueConnection QueueConnectionFactory::jmsGetQueueConnection()
- 説明: 指定の接続ファクトリーから、JMS キュー接続を戻します。
jmsGetQueueSession
- プロトタイプ: QueueSession QueueConnection::jmsGetQueueSession()
- 説明: 指定の接続ファクトリーから、JMS キュー接続を戻します。
jmsDisconnect
- プロトタイプ: void QueueSession::jmsDisconnect(QueueConnection qcon)
- 説明: 指定のキュー・マネージャーから切断します。
jmsCreateTextMsg
- プロトタイプ: Message QueueSession::jmsCreateTextMsg(String msgText)
- 説明: QueueSession 情報を使用して、提供されたテキストが含まれる新規 JMS TextMessage を作成します。
jmsSendMsg
- プロトタイプ: Message QueueSession::jmsSendMsg(Message msg, String queueName[, HashMap properties, Message messageToReplyTo])
- 説明: メッセージ MSG を queueName という名前のキューに送信し、MSG またはヌルを戻します。MESSAGETOREPLYTO が提供される場合、キューおよびメッセージ ID への返信は MESSAGETOREPLYTO から読み取られます。PROPERTIES はストリング・キーからストリング値へのマップです。"WPC_REPLY_TO_QUEUE"、"WPC_COPY_CORRELATION_ID_BYTES"、および "WPC_COPY_CORRELATION_ID" の 3 つの特殊キーがあります。 WPC_REPLY_TO_QUEUE を提供すると、QUEUENAME をオーバーライドするか、提供された MESSAGETOREPLYTOのキューに返信します。MESSAGETOREPLYTO のキューへの返信は、QUEUENAME をオーバーライドします。"WPC_COPY_CORRELATION_ID" および "WPC_COPY_CORRELATION_ID_BYTES" は、相関 ID を MESSAGETOREPLYTO から MSG にコピーします。両方を提供できます。これらの値は、(上述のようにストリングではなく) ブール値にする必要があります。
jmsReceiveMsgFromQueue
- プロトタイプ: JMSMessage QueueSession::jmsReceiveMsgFromQueue(javax.jms.Queue queue, Integer timeout[, String messageSelector, JMSMessage messageToReceiveReplyFor])
- 説明: JMS メッセージを受信します。TIMEOUT ミリ秒後にタイムアウトします。INBOUNDQUEUE がヌルではない場合、そのキューを調べてください。INBOUNDQUEUE がヌルで、MESSAGETORECEIVEREPLYFOR がヌルではない場合、MESSAGETORECEIVEREPLYFOR の「返信先 (Reply-To)」フィールドで定義されたキューを参照します。 INBOUNDQUEUE がヌルで MESSAGETORECEIVEREPLYFOR もヌルの場合には、AustinException がスローされます。どのキューが使用されるかが分かります。MESSAGESELECTOR と MESSAGETORECEIVEREPLYFOR が共にヌルの場合、キューの最初のメッセージを選択します。その他の場合には、MESSAGESELECTOR と MESSAGETORECEIVEREPLYFOR によって定義されたすべての条件を満たすキュー (ある場合) からの最初のメッセージを選択します。MESSAGETORECEIVEREPLYFOR がヌルの場合、MESSAGETORECEIVEREPLYFOR のメッセージ ID と等しい相関 ID を持っていないメッセージは拒否されます。MESSAGESELECTOR がヌルではない場合、messageSelector で定義された条件を満たさないすべてのメッセージは拒否されます。適切なメッセージがない場合には、ヌルが戻ります。
jmsGetTextFromMsg
- プロトタイプ: String Message::jmsGetTextFromMsg()
- 説明: ヘッダーを含む、JMS メッセージのコンテンツ全体が含まれるストリングを戻します。
jmsGetMessageID
- プロトタイプ: String Message::getJMSMessageID()
- 説明: JMS メッセージ ID を含むストリングを戻します。
jmsGetMessageCorrelationID
- プロトタイプ: String Message::getJMSMessageCorrelationID()
- 説明: JMS メッセージの相関 ID を含むストリングを戻します。
jmsGetMessageProperties
- プロトタイプ: HashMap Message::getJMSMessageProperties()
- 説明: ストリング・プロパティー名から、それらの優先順位に関するストリング値へのハッシュ・マップを戻します。
jmsSendMsgToQueue
- プロトタイプ: JMSMessage QueueSession::jmsSendMsgToQueue(JMSMessage msg, javax.jms.Queue outboundQueue [, HashMap properties, JMSMessage messageToReplyTo,])
- 説明: メッセージ MSG を送信し、MSG またはヌルを戻します。OUTBOUNDQUEUE がヌルではない限り、OUTBOUNDQUEUE で指定されたキューにメッセージは送信されます。OUTBOUNDQUEUE がヌルの場合には、MSG は MESSAGETOREPLYTO が提供されていると MESSAGETOREPLYTO の送信先キューに送信されます。OUTBOUNDQUEUE がヌルで MESSAGETOREPLYTO が提供されていない場合、AustinException がスローされます。MESSAGETOREPLYTO が提供されている場合には、メッセージ ID は MESSAGETOREPLYTO から読み取られます。PROPERTIES はストリング・キーからストリング値へのマップです。WPC_INCOMING_REPLY_QUEUE という特殊 (非 JMS) キーがあります。WPC_INCOMING_REPLY_QUEUE は、外部アプリケーションがこのメッセージへの返信を送信する javax.jms.Queue オブジェクトを表しています。
jmsSetMessageText
- プロトタイプ: void Message::setJMSMessageText(String msgText)
- 説明: JMS TextMessage に対して提供されたテキストを設定します。JMS TextMessage タイプのみがサポートされています。
新規 Web サービスの作成
メニュー・パス「コラボレーション・マネージャー」>「Web サービス」>「新規 Web サービス」を使用します。 「Web サービスの詳細」画面が表示されます。
適切な情報を以下のフィールドに入力します。
Web サービス名 Web サービスの名前を入力します。 この名前は SOAP サービスの URL の一部になります。 空白を含んではいけません。 たとえば、以下のようにします。 Web サービスの説明 Web サービスの説明を入力します。 プロトコル Web サービスで使用されるプロトコル。 現在は、SOAP over HTTP のみがサポートされたプロトコルです。 デフォルト値は“SOAP_HTTP”です。 URL このサービスにアクセスするための URL です。 Web サービスを保管した後、このフィールドに自動的にデータが取り込まれます。
WSDL URL この Web サービスの WSDL にアクセスするための URL。 Web サービスを保管した後、このフィールドに自動的にデータが取り込まれます。 WSDL このサービスの WSDL を入力します。WSDL 文書は、このサービスのインターフェース、URL、およびプロトコルについて説明した XML 形式の文書です。この文書を手動で入力する必要があります。WSDL 文書のサンプルについては以下をご覧ください。 正しく保管するには、Web サービスに有効な XML を入力する必要があります。 インプリメンテーション・スクリプト このサービスをインプリメントする Trigo スクリプトを入力します。サービスの着信パラメーターは、配列変数 "soapParams" で使用できます。 サービスの戻り値はストリングでなければならず、"out" 書き出し変数に書き出されます。 SOAP フォールトを戻すには、フォールト・コードを "soapFaultCode" 書き出し変数に書き出し、フォールト・メッセージを "soapFaultMsg" 書き出し変数に書き出します。 インプリメンテーション・スクリプトのサンプルについては、以下 をご覧ください。 要求を保管しますか? これにチェック・マークを付けると、Trigo はすべての着信要求のパラメーターを文書ストアに保管します。これはトランザクション・コンソールから使用できます。 応答を保管しますか? これにチェック・マークを付けると、Trigo はすべての応答の内容を文書ストアに保管します。これはトランザクション・コンソールから使用できます。 デプロイ済み これにチェック・マークを付けると、サービスがデプロイされます。チェック・マークを付けない場合、このサービスを利用できません。 インプリメンテーション・スクリプトおよび WSDL 文書のサンプル
以下のサンプル・インプリメンテーション・スクリプトと WSDL 文書の設計は、着信 SOAP 要求のパラメーターの数をチェックします。 パラメーター数が 4 つの場合は、そのパラメーターをリストしたストリングを戻します。 パラメーター数が 4 つではない場合は、SOAP フォールトをスローします。
インプリメンテーション・スクリプト
nParams = soapParams.size();if (nParams != 4){
soapFaultCode.writeln("WRONG_NUM_PARAMS");
soapFaultMsg.writeln("Wrong number of parameters. This service requires 4. You have " + nParams + " parameters.");}
else{
out.writeln("Success.");
for (i = 0; i < nParams; i++)
{
out.writeln("Parameter " + (i + 1) + " is " + soapParams[i]);
}
}
WSDL
<?xml version="1.0" encoding="UTF-8"?><wsdl:definitions targetNamespace="http://my.trigo-instance.com/soap/services/CheckParams"xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:apachesoap="http://xml.apache.org/xml-soap"
xmlns:impl="http://my.trigo-instance.com/soap/services/CheckParams"
xmlns:intf="http://my.trigo-instance.com/soap/services/CheckParams"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<wsdl:message name="invokeRequest">
<wsdl:part name="param1" type="xsd:string"/>
<wsdl:part name="param2" type="xsd:string"/>
<wsdl:part name="param3" type="xsd:string"/>
<wsdl:part name="param4" type="xsd:string"/>
</wsdl:message>
<wsdl:message name="invokeResponse">
<wsdl:part name="invokeReturn" type="xsd:string"/>
</wsdl:message>
<wsdl:portType name="CheckParams">
<wsdl:operation name="invoke" parameterOrder="param1 param2 param3 param4">
<wsdl:input message="intf:invokeRequest" name="invokeRequest"/>
<wsdl:output message="intf:invokeResponse" name="invokeResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="CheckParamsSoapBinding" type="intf:CheckParams">
<wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="invoke">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="invokeRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://DefaultNamespace"
use="encoded"/>
</wsdl:input>
<wsdl:output name="invokeResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://my.trigo-instance.com/soap/services/CheckParams"
use="encoded"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="CheckParamsService">
<wsdl:port binding="intf:CheckParamsSoapBinding"
name="CheckParams">
<wsdlsoap:address location="http://my.trigo-instance.com/soap/services/CheckParams"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>