问题描述
用例:我正在使用Apache骆驼从Spring Boot App向IBM MQ Listener发送请求,而发送时我必须更改MQ JMS属性JMS_IBM_Character_Set = UTF-8,但是这些更改没有反映在听众端
任何人都可以帮助我如何使用Apache Camel更改IBM MQ的属性值
//请求队列-一个方向
@Component
public class RequestRouter extends RouteBuilder {
@Override
public void configure() throws Exception {
from("direct:request").
setProperty("JMS_IBM_Character_Set",constant("true")).
to("jms:REQUEST.Q1?disableReplyTo=true")
.log("Received Body is ${body} and header info is ${headers} ");
}
}
//低于一个请求-响应队列
@Component
public class RequestReplyRouter extends RouteBuilder {
@Override
public void configure() throws Exception {
from("direct:request-reply").setProperty("JMS_IBM_Character_Set",constant("true"))
.to("log:like-to-see-all?level=INFO&showAll=true&multiline=true")
.to("jms:REQUEST.Q1?ReplyTo=REPLY.Q1&exchangePattern=InOut")
.log("Request-reply Body is ${body} and header info is ${headers} ");
from("jms:REPLY.Q1")
.log("Received Body is ${body} and header info is ${headers} ");
}
}
解决方法
当我在2017年使用JMS客户端在IBM MQ上发送消息时,我无法做到。我将jms客户端更改为IBMMQ.jar,以放置带有标题的消息。我建议您可以在Apache骆驼站点上阅读JMS文档。另外,尝试使用“ allowAdditionalHeaders”