【问题标题】:Calling Apache Camel RMI endpoint invoking method with multiple parameters使用多个参数调用 Apache Camel RMI 端点调用方法
【发布时间】:2012-11-30 21:38:49
【问题描述】:

我可以调用具有多个参数的 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。

【问题讨论】:

    标签: parameters rmi apache-camel endpoint


    【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-05
      • 2012-10-05
      • 2015-05-06
      • 1970-01-01
      • 2020-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多