0

我们有这条 apache 骆驼路线,

from(commandDrop).marshal(jaxbDataFormat).to(jmsQueue);    
from(jmsQueue).inOut("jms:doCommand?requestTimeout=500000");          
from("jms:doCommand").unmarshal(jaxbDataFormat).beanRef("bean");

....和这样的 bean 类

class BeanClass {
        public void doCommand(Command command, Exchange exchange){
    {       
        command.run();      
        exchange.getOut().setBody(command);     
    }
}

我们试图在这样的路线上发送消息并等待回复

Object ret = template.requestBody(commandDrop, new TestCommand());

前向路线上的对象正在出色地编组/解组。但是 setBody 调用会导致 java.io.NotSerializableException。有没有办法配置路由以在返回的路上使用相同的 jaxb 编组/解组?我的 Command 类包含一些 jaxb 生成的不可序列化的类对象。他们在前进方向上由元帅/解组员很好地处理,如果他们能在回来的路上会很棒。我对骆驼比较陌生,所以不确定这是否是最好的方法。

谢谢一堆。

4

1 回答 1

1

您可以在 bean 调用之后对其进行编组

from("jms:doCommand").unmarshal(jaxbDataFormat).beanRef("bean").marshal(jaxbDataFormat);
于 2011-03-28T11:26:50.480 回答