Apache Camel inOut路由,用jaxb交换编组/解组

时间:2011-03-28 09:09:57

标签: activemq apache-camel

我们有这个apache camel route,

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生成的类对象。他们在前进的方向上由元帅/解组者处理得很好,如果他们可以在回来的路上就会很棒。我对骆驼比较陌生,所以不确定这是不是最好的方法。

感谢一帮。

1 个答案:

答案 0 :(得分:1)

您可以在bean调用之后编组它

from("jms:doCommand").unmarshal(jaxbDataFormat).beanRef("bean").marshal(jaxbDataFormat);