Spring integration Spring集成写入IBM MQ
使用Boot 2.2.2和Spring Integration 5.2.2通过IBM MQ Series 9与另一个应用程序交互;消息需要是纯文本(而不是JMS)。SI可以正确地获取文本消息,但是如果没有JMS头,我似乎无法将其放入MQ 使用JMS而不使用SI,我可以使用编写纯文本消息Spring integration Spring集成写入IBM MQ,spring-integration,spring-jms,spring-integration-dsl,Spring Integration,Spring Jms,Spring Integration Dsl,使用Boot 2.2.2和Spring Integration 5.2.2通过IBM MQ Series 9与另一个应用程序交互;消息需要是纯文本(而不是JMS)。SI可以正确地获取文本消息,但是如果没有JMS头,我似乎无法将其放入MQ 使用JMS而不使用SI,我可以使用编写纯文本消息 jmsTemplate.send(myQueue, new MessageCreator() { @Override public Message createMessa
jmsTemplate.send(myQueue, new MessageCreator() {
@Override
public Message createMessage(Session session) throws JMSException {
return session.createTextMessage(message);
}
});
当使用SI时,我有以下几点:
@Bean
public IntegrationFlow toQueue(
ConnectionFactory connectionFactory,
@Value("${app.outQueue}") String myQueue
) {
return IntegrationFlows
.from("myIncomingChannel")
.headerFilter("*")
.handle(
Jms
.outboundAdapter(connectionFactory)
.configureJmsTemplate(jts -> jts.jmsMessageConverter(new SimpleMessageConverter()))
.extractPayload(true)
.destination(myQueue)
)
.get();
}
我试过8种不同的组合
configureJmsTemplate
extractPayload
true或falseheaderFilter
所有测试都会在队列上给我一条JMS消息。如何让SI JMS编写纯文本消息?我使用本文的答案解决了这个问题 工作版本为
.handle(
Jms
.outboundAdapter(connectionFactory)
.destination("queue:///" + myQueue + "?targetClient=1")
)
.get();
@ArtemBilam在2天内,当本网站允许我:-)