我们有这个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生成的类对象。他们在前进的方向上由元帅/解组者处理得很好,如果他们可以在回来的路上就会很棒。我对骆驼比较陌生,所以不确定这是不是最好的方法。
感谢一帮。
答案 0 :(得分:1)
您可以在bean调用之后编组它
from("jms:doCommand").unmarshal(jaxbDataFormat).beanRef("bean").marshal(jaxbDataFormat);