WebSphere Enterprise Service Bus for z/OS バージョン 6.2.0 オペレーティング・システム: z/OS


コンポーネントの動的呼び出し

Web サービス記述言語 (WSDL) ポート・タイプ・インターフェースを指定したコンポーネントをモジュールから呼び出す場合、invoke() メソッドを使用してそのコンポーネントを動的に呼び出す必要があります。

始める前に

この操作は、呼び出し側コンポーネントがコンポーネントを動的に呼び出すことを前提としています。

このタスクについて

WSDL ポート・タイプ・インターフェースの場合、呼び出し側コンポーネントは invoke() メソッドを使用して、コンポーネントを呼び出す必要があります。呼び出し側モジュールから、この方法で Java™ インターフェースを指定したコンポーネントも呼び出すことができます。
手順
  1. 必要なコンポーネントが格納されているモジュールを特定します。
  2. コンポーネントが必要とする配列を特定します。
    入力配列は、次の 3 つのタイプのいずれかになります。
    • 大文字の Java プリミティブ型、またはこの型の配列
    • 通常の Java クラス、またはこのクラスの配列
    • サービス・データ・オブジェクト (SDO)
  3. コンポーネントからの応答を格納する配列を定義します。

    応答配列は、入力配列と同じタイプにすることができます。

  4. invoke() メソッドを使用して必要なコンポーネントを呼び出し、配列オブジェクトをそのコンポーネントに渡します。
  5. 結果を処理します。

コンポーネントの動的呼び出しの例

以下の例のモジュールは、invoke() メソッドを使用して、大文字の Java プリミティブ・データ型を使用するコンポーネントを呼び出します。
Service service = (Service)serviceManager.locateService("multiParamInf");
		
		Reference reference = service.getReference();

		OperationType methodMultiType = 
				reference.getOperationType("methodWithMultiParameter");

		Type t = methodMultiType.getInputType();

		BOFactory boFactory = (BOFactory)serviceManager.locateService
				("com/ibm/websphere/bo/BOFactory");

		DataObject paramObject = boFactory.createbyType(t);

		paramObject.set(0,"input1")
		paramObject.set(1,"input2")
		paramObject.set(2,"input3")

		service.invoke("methodMultiParamater",paramObject);

次の例では、WSDL ポート・タイプ・インターフェースをターゲットとして持つ呼び出しメソッドを使用します。

Service serviceOne = (Service)serviceManager.locateService("multiParamInfWSDL");
	
	DataObject dob = factory.create("http://MultiCallWSServerOne/bos", "SameBO");
			dob.setString("attribute1", stringArg);

	DataObject wrapBo = factory.createByElement
		("http://MultiCallWSServerOne/wsdl/ServerOneInf", "methodOne");
			wrapBo.set("input1", dob); //wrapBo encapsulates all the parameters of methodOne
			wrapBo.set("input2", "XXXX");
			wrapBo.set("input3", "yyyy");

	DataObject resBo= (DataObject)serviceOne.invoke("methodOne", wrapBo);

task タスク・トピック

ご利用条件 | フィードバック


タイムスタンプ・アイコン 最終更新: 2010/07/05


http://publib.boulder.ibm.com/infocenter/dmndhelp/v6r2mx/topic//com.ibm.websphere.wesb620.zseries.doc/doc/tdev_dynamicinvokcomp.html
Copyright IBM Corporation 2005, 2010. All Rights Reserved.
このインフォメーション・センターでは Eclipse テクノロジーが採用されています (http://www.eclipse.org)。