首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache Camel inOut路由,与jaxb交换编组/解组

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

Stack Overflow用户
提问于 2011-03-28 17:09:57
回答 1查看 1.7K关注 0票数 0

我们有一条阿帕奇骆驼路线

代码语言:javascript
复制
from(commandDrop).marshal(jaxbDataFormat).to(jmsQueue);    
from(jmsQueue).inOut("jms:doCommand?requestTimeout=500000");          
from("jms:doCommand").unmarshal(jaxbDataFormat).beanRef("bean");

……和一个像这样的bean类

代码语言:javascript
复制
class BeanClass {
        public void doCommand(Command command, Exchange exchange){
    {       
        command.run();      
        exchange.getOut().setBody(command);     
    }
}

我们尝试在路由上放置一条消息并等待回复,如下所示

代码语言:javascript
复制
Object ret = template.requestBody(commandDrop, new TestCommand());

正向路径上的对象被很好地进行了编组/解组。但是setBody调用导致了java.io.NotSerializableException。有没有办法将路由配置为在返回过程中使用相同的jaxb编组/解组?我的Command类包含一些jaxb生成的不可序列化的类对象。它们在前进方向被编组/解组处理得很好,如果它们能在返回的方向上,那就太好了。我对camel比较陌生,所以不确定这是不是最好的方式。

非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-03-28 19:26:50

您可以在bean调用之后封送它。

代码语言:javascript
复制
from("jms:doCommand").unmarshal(jaxbDataFormat).beanRef("bean").marshal(jaxbDataFormat);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5456807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档