Apache camel ApacheCamel:CXF-返回持有者值(错误:IndexOutOfBoundsException:索引:1,大小:1)

Apache camel ApacheCamel:CXF-返回持有者值(错误:IndexOutOfBoundsException:索引:1,大小:1),apache-camel,cxf,Apache Camel,Cxf,我在设置输出消息中的保持器时遇到问题。 我有以下简单的路由和处理器: from("cxf:bean:ewidencjaEndpoint") .process(new ProcessResult()) .end(); public class ProcessResult implements Processor { public void process(Exchange exchange) throws Exception { Object[] ar

我在设置输出消息中的保持器时遇到问题。 我有以下简单的路由和处理器:

from("cxf:bean:ewidencjaEndpoint")
    .process(new ProcessResult())
    .end();

public class ProcessResult implements Processor {

    public void process(Exchange exchange) throws Exception {

        Object[] args =  exchange.getIn().getBody(Object[].class);

        long id = (long) args[0];
        Holder<A> dataA = (Holder<A>) args[1];
        Holder<B> dataB = (Holder<B>) args[2];

        exchange.getOut().setBody(new Object[]{ dataA, dataB});

}
我在网上读过很多类似的问题(例如:),但都没有成功地解决这个问题

在调试中,我得到如下输出消息:

Exchange[Message[null,null, A@xxxm B@yyy]]
我不明白那些愚蠢的“null”值是怎么来的。
根据wsdl文件(和生成的接口),我只有2个输出值(在持有者中)。我还在调试控制台中看到,在exchange主体的“out”部分中,我在ProcessResult()中只设置了2个值(从2到3进行了标识),而“out”部分的大小值设置为“4”(不是2)?

错误的可能重复项是相同的,但出现错误的原因不同。在我的例子中,在Camel集成框架中定义输出是一个问题。它在一些论坛中被描述过,但我还没有找到它。问题解决了:我没有在请求消息中发送持有者。删除以下行修复了问题:(持有者数据A=(持有者)参数[1];持有者数据B=(持有者)参数[2];)。我正在创建新的输出保持器并为它们设置新的值,这种异常的原因总是不同的。但那个问答的要点是,你几乎不应该发布到“我有一个AIOBException”。您应该发布“为什么
args
没有它应该拥有的东西”。
Exchange[Message[null,null, A@xxxm B@yyy]]