3

複数のパラメーターを持つ Apache Camel RMI エンドポイント メソッドを呼び出すことはできますか?

私が呼び出すメソッド シグネチャは次のとおりです。

public ReturnedVo methodSignature(String parm1, byte[] parm2)

Camel Route:
    from("timer:myTimer?period=5000".routeId("TestRoute").process(new Processor() {
       public void process(Exchange exchange) throws Exception{
          exchange.getOut().setBody(???????);
       }
    }).to (uri)

どこuri="rmi://serviceLocation?method=methodSignature"

メソッドに単一のパラメーターがある場合、同様のルートを使用して同じサービスから異なるメソッドを呼び出すことができました。オブジェクトのインスタンスでメッセージ本文を設定していました: exchange.getOut().setBody(instanceOfObject).

私が呼び出しているサービスは、Weblogic 8.1 のリモート EJB です。

4

1 に答える 1

2

私自身の質問に答えます。これが私が問題を解決するために行ったことです。

1) uri に変更を加えました: uri="rmi://serviceLocation?
method=methodSignature&multiParameterArray=true

2) 呼び出されるメソッドのパラメーターを格納するオブジェクト配列を作成します。

Object [] body = new Object[] {"parm1", new byte[11]};

3) オブジェクト [] 本体を使用するようにキャメル ルートを変更しました。

from("timer:myTimer?period=5000").
   routeId("TestRoute").
   process(new Processor() { 
       public void process(Exchange exchange) throws Exception{ 
           exchange.getOut().setBody(body); 
       } 
   }).
   to (uri)

Camel 2.9 以降では、別の解決策があることに注意してください。ここにリンクがあり ます http://camel.465427.n5.nabble.com/bean-ejb-etc-how-to-set-parameters-td4375679.html

于 2012-12-03T18:06:32.363 に答える