使用Apache Camel和Spring Boot向IBMMQ发送请求时,需要更改JMS_IBM_Character_Set属性值

问题描述

用例:我正在使用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”