我们有一条阿帕奇骆驼路线
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生成的不可序列化的类对象。它们在前进方向被编组/解组处理得很好,如果它们能在返回的方向上,那就太好了。我对camel比较陌生,所以不确定这是不是最好的方式。
非常感谢。
发布于 2011-03-28 19:26:50
您可以在bean调用之后封送它。
from("jms:doCommand").unmarshal(jaxbDataFormat).beanRef("bean").marshal(jaxbDataFormat);https://stackoverflow.com/questions/5456807
复制相似问题