我可以调用具有多个参数的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。
提前感谢您的帮助。
答案 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