首页 文章

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

提问于
浏览
2

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

我调用的方法签名是: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 .

在此先感谢您的帮助 .

1 回答

  • 1

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

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

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

    Object [] body = new Object [] {“parm1”,new byte [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

相关问题