我们有这条 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 生成的不可序列化的类对象。他们在前进方向上由元帅/解组员很好地处理,如果他们能在回来的路上会很棒。我对骆驼比较陌生,所以不确定这是否是最好的方法。
谢谢一堆。