使用多个参数调用Apache Camel RMI端点调用方法

时间:2012-11-30 21:38:49

标签: parameters rmi apache-camel endpoint

我可以调用具有多个参数的Apache Camel RMI端点方法吗?

我调用的方法签名是: public ReturnedVo methodSignature(String parm1,byte [] parm2)

骆驼路线:     from(“timer:myTimer?period = 5000”.routeId(“TestRoute”)。process(new Processor(){        public void process(Exchange exchange)抛出Exception {           exchange.getOut()setBody(???????)。        }     })。到(uri)

其中uri =“rmi:// serviceLocation?method = methodSignature”

当方法具有单个参数时,我能够使用类似的路由从同一服务调用不同的方法。我正在使用对象的实例设置消息体:exchange.getOut()。setBody(instanceOfObject)。

我正在调用的服务是Weblogic 8.1上的远程EJB。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

回答我自己的问题。以下是我为解决这个问题所做的工作。

1)对uri进行了更改:uri =“rmi:// serviceLocation?
    method=methodSignature&multiParameterArray=true

2)创建Object数组以存储要调用的方法的参数:

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

3)改变了驼峰路线以使用Object [] body:

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