このセクションでは、webMethods ツールを設定して適用する方法について説明します。webMethods ツールを使用すると、Software AG webMethods Broker に BrokerEvent オブジェクトをパブリッシュして送るだけでなく、イベントをサブスクライブし、ネイティブの webMethods IS (Integration Server) サービスを呼び出すことができます。このセクションの内容:
設定の手順は、使用する実行モード (パブリッシュ、サブスクライブ、リクエスト/リプライ) によって異なります。
以下の JAR ファイルを SOAtest のクラスパスに追加する必要があります。
JAR ファイルは [webmethods install dir]/Broker/lib/ の下にあります。詳細については、『webMethods Broker Client Java API Programmer's Guide』の 「Getting Started」> 「Using the webMethods Broker Java API」 を参照してください。
場合によっては、enttoolkit.jar と mail.jar も必要です。
これらの JAR ファイルを SOAtest のクラスパスに追加するには、以下の操作を行います。
webMethods ツールを設定して BrokerEvent オブジェクトをパブリッシュするには、以下の操作を行います。
(オプション) 目的のフィールド値があるイベントだけを取得するために、[サブスクリプション フィルター] でフィルター文字列を指定します。たとえば、次のような式を使用できます。my_Strin_field="some value" and my_int_value < 5
フィルター文字列の構文の詳細については、『webMethods Broker Client Java API Programmer's Guide』の「Using Event Filters」セクションを参照してください。
BrokerEvent オブジェクトの詳細については、『webMethods Broker Client Java API Programmer’s Guide』の COM.activesw.api.client.BrokerEvent ドキュメントを参照してください。
テストの実行中 SOAtest は、ブローカー クライアントの Java API を呼び出してそれを BrokerEventobject に提供することで、イベントをパブリッシュします。そのイベント タイプにサブスクライブされるアプリケーションは、SOAtest がパブリッシュしたイベントを受け取ります。
パブリッシュされるイベントの XML 表現を参照するには、Traffic Viewer ツールを使用します。このツールは自動的に webMethods ツールに連結されます。なお、実際の BrokerEvent オブジェクトが送受信されても、Traffic Viewer ツールは XML 表現を使用します。XML 表現が読みやすくなると共に、ユーザーはコンテンツを検証したり処理したりするツール (たとえば Diff ツールや XML Assertor ツール) を連結することができます。
BrokerEvent オブジェクトをサブスクライブするように webMethods ツールを設定するには、以下の操作を行います。
テストの実行中、 SOAtest は指定されたイベント タイプにパブリッシュされるイベントのリスニングを開始します。
受け取られるイベントの XML 表現を参照するには、Traffic Viewer ツールを使用します。このツールは自動的に webMethods ツールに連結されます。なお、実際の BrokerEvent オブジェクトが送受信されても、Traffic Viewer ツールは XML 表現を使用します。XML 表現が読みやすくなると共に、ユーザーはコンテンツを検証したり処理したりするツール (たとえば Diff ツールや XML Assertor ツール) を連結することができます。
BrokerEvent オブジェクトを送信し、次のオブジェクトを送信する前にリプライを待つように webMethods ツールを設定するには、以下の操作を行います。
BrokerEvent オブジェクトの詳細については、『webMethods Broker Client Java API Programmer’s Guide』の COM.activesw.api.client.BrokerEvent ドキュメントを参照してください。
テストの実行中 SOAtest は、ブローカー クライアントの Java API を呼び出してそれを BrokerEventobject に提供することでリクエストを送信し、リプライを待ちます。
リクエスト/リプライのイベントの XML 表現を参照するには、Traffic Viewer ツールを使用します。このツールは自動的に webMethods ツールに連結されます。なお、実際の BrokerEvent オブジェクトが送受信されても、Traffic Viewer ツールは XML 表現を使用します。XML 表現が読みやすくなると共に、ユーザーはコンテンツを検証したり処理したりするツール (たとえば Diff ツールや XML Assertor ツール) を連結することができます。
ブローカーにパブリッシュするときに、またはスクリプト入力を使ってリクエスト/リプライを行うときに、2 つの引数がカスタム メソッドに渡されます。1 つ目の引数は、ツール設定で指定したタイプ名に対する BrokerEvent オブジェクトです。目的の入力値をこのオブジェクトに投入して返す必要があります (入力値の投入については『webMethods Broker Client Java API Programmer’s Guide』を参照してください)。2 つ目の引数は、テスト ツールの com.parasoft.api.Context オブジェクトです。
以下は Jython スクリプトの例です。
from com.parasoft.api import * from COM.activesw.api.client import * def configureBrokerEvent(event, context): event.setUCStringField("s", "something") event.setIntegerField("i", 1) event.setUCStringSeqField("sl", 0, BrokerEvent.ENTIRE_SEQUENCE, BrokerEvent.AUTO_SIZE, ["one", "two", "three"]) return event |
以下の JAR ファイルを SOAtest のクラスパスに追加する必要があります。
この JAR ファイルは [webmethods install dir]/common/lib/ にあります。SOAtest のクラスパスにこの JAR ファイルを追加するには、以下の操作を行います。
webMethods IS (Integration Server) サービスを呼び出してレスポンスを受け取るよう SOAtest を設定するには、以下の操作を行います。
テストの実行中 SOAtest は、Integration Server のサービスを呼び出してレスポンスを受け取るために iData オブジェクトを送信します。
送受信するオブジェクトの XML 表現を参照するには、Traffic Viewer ツールを使用します。このツールは自動的に webMethods ツールに連結されます。この XML 表現は iData の XML コーダーの書式を使用します。なお、実際の iData オブジェクトが送受信されても、Traffic Viewer ツールは XML 表現を使用します。XML 表現が読みやすくなると共に、ユーザーはコンテンツを検証したり処理したりするツール (たとえば Diff ツールや XML Assertor ツール) を連結することができます。
Integration Server サービスでスクリプト入力を使用する際、2 つの引数がカスタム メソッドに渡されます。1 つ目の引数は、目的のデータを投入して返す必要がある IData オブジェクトです。2 つ目の引数は com.parasoft.api.Context オブジェクトです。
以下は Jython スクリプトの例です。
from com.wm.app.b2b.client import * from com.wm.data import * def buildIData(idata, context): IDataUtil.put(idata.getCursor(), "in1", "12") IDataUtil.put(idata.getCursor(), "in2", "13") return idata |
セッション ID は自動的に WebMethodsSessionId コンテキスト変数に保存されます。com.parasoft.api.Context.get(String key) を使って、Extension ツール、スクリプト、およびカスタム ツールからこの変数にアクセスできます。String key は "WebMethodsSessionId" です。
たとえば、(Groovy スクリプトを使用する) 以下の Extension ツールは、sessionId 変数に格納されたセッション ID にアクセスします。
import com.parasoft.api.* boolean useSessionId(input, context) { sessionId = context.get("WebMethodsSessionId") Application.showMessage("sessionId = " + sessionId) // Put code here to do something with the session id return true } |