VG *_*gde 2 activemq-classic jms apache-camel
我在交换对象的标题中设置一个List与其他几个标题并将其路由到ActiveMQ.
exchange.getOut().setHeader("testList", testList);
exchange.getOut().setHeader("testObject", testObject);
exchange.getOut().setHeader("header1", "value1");
exchange.getOut().setHeader("header2", "value2");
Run Code Online (Sandbox Code Playgroud)
在我访问交换对象的标题时的下一个路径中,"testList"并且testObject不存在!但剩下的标题存在(exchange.getIn().getHeader).
我们不能发送除String之外的任何标题(列表或任何其他对象)吗?
根据Camel文件:
对于exchange.in.header,以下规则适用于标头值:
值必须是基元或其计数器对象(例如Integer,Long,Character).类型,String,CharSequence,Date,BigDecimal和BigInteger都转换为它们的toString()表示.所有其他类型都被删除.
更多信息可以在这里找到:http://camel.apache.org/jms 或http://docs.oracle.com/javaee/1.4/api/javax/jms/Message.html
请参阅Camel手册部分:发送时的消息格式
Camel将删除不允许类型的标头,但您可以使用vm或seda组件而不是activemq.或者,您可以将列表转换为XML或JSON,将其转换为字符串并通过JMS发送此字符串.
| 归档时间: |
|
| 查看次数: |
1630 次 |
| 最近记录: |