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

标签 parameters rmi apache-camel endpoint

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

最佳答案

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

1) 修改了 uri: uri="rmi://serviceLocation?
method=methodSignature&multiParameterArray=true

2) 创建Object数组存放调用方法的参数:

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

3) 将 camel 路由更改为使用 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

关于parameters - 使用多个参数调用 Apache Camel RMI 端点调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13653568/

相关文章:

web-services - 在 jboss fuse 中使用 cxf 的 Web 服务端点

symfony2 多数据库

c# - 将 string[] 数组分配给带有参数 string[] 的函数

mysql - 存储过程参数类型

java - 请问java RMI的意义?

serialization - Java & EJB3 : How to correctly pass @Entity objects from Client to Server?

java - RMI方法调用抛出NPE

java - Camel 指标 : use route id in counter name

java - 如何释放 apache Camel 中的内存使用量?

javascript - 将字段中的值添加到 JavaScript 函数