当前位置:  开发笔记 > 编程语言 > 正文

如何列出apache camel中的所有jms头属性?

如何解决《如何列出apachecamel中的所有jms头属性?》经验,为你挑选了1个好方法。

我正在尝试在apache-camel路由中读取jms头.以下是我正在阅读正文和标题的路线.

String endPointTopic = "activemq:topic:geoLoc";
String endPointTopicOut = endPointTopic + "_outbox";    
from(endPointTopic)                 
    .log("Message from Topic is ${body} & header is ${header.Action}")
    .to(endPointTopicOut);

基本上从日志中我可以看到以下内容,这意味着我能够读取正文而不是标题中的id.

来自Topic的消息是GeoLocationInfoDTO {id = 2,geoLocationUUId ='null',geoLocationName ='null',geoLocationDesc ='null',geoLocationPolygon ='null',geoLocationCenterLatitude ='null',geoLocationCenterLongitude ='null'}&header is

以下是我通过jms模板将消息发布到activeMQ的代码.

private MessageHeaders getMessageHeaders(HttpMethod action) {
    log.debug("DomainPublisher : getMessageHeaders");

    Map  headerMap = new HashMap<>();
    headerMap.put("Action", action);

    return new MessageHeaders(headerMap);
}

public void publish(BaseDTO dto, HttpMethod action) {
    log.debug("DomainPublisher : type is : {} : ", dto.getClass().getName());
    getJmsMessagingTemplate().convertAndSend(topicMap.get(dto.getClass().getName()), dto, getMessageHeaders(action));
}

注意:我还尝试将标头ID记录为$ {header.id}而不是$ {header.Action},但没有任何内容被打印出来.

我还想知道jms消息可用的所有头文件.



1> Alexey Yakun..:

您可以使用此示例中显示的所有标头和属性记录交换:

.to("log:like-to-see-all?level=INFO&showAll=true&multiline=true")

http://camel.apache.org/log.html

有关JMS头的更多信息,请访问:http://camel.apache.org/jms.html

可能的标题列表:

JMSCorrelationID - JMS相关ID.

JMSDeliveryMode - JMS传送模式.

JMSDestination - JMS目标.

JMSExpiration - JMS到期.

JMSMessageID - JMS唯一消息ID.

JMSPriority - JMS优先级(0表示最低优先级,9表示最高优先级).

JMSRedelivered - 是否重新传递了JMS消息.

JMSReplyTo - JMS回复目的地.

JMSTimestamp - JMS时间戳.

JMSType - JMS类型.

JMSXGroupID - JMS组ID.

推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有