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数组来存储要调用的方法的参数:

对象 [] 主体 = 新对象 [] {"parm1", 新字节 [11]};

3) 更改骆驼路线以使用 Object [] 主体:

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 回答