与Spring JMS正常工作,并遇到Apache camel route,IBM MQ Route问题

问题描述

我正在使用空格模式将请求发送到第三方IBM MQ,例如下面的文本(COBOL输入文件),但是我正在像下面的“回复”队列中一样作为错误响应,但是相同的输入可以正常运行spring jms,我面对着骆驼的问题

示例输入:

GetProducerWithCommissionddrates
C26115
77104 99998
2010-01-01 011

回复

在控制器中打印数据:: EPPRD02007EAn无效的COBOL日期格式 作为输入提供给生产者检索服务“获取生产者” 带有佣金率操作:AsOfDate。资源: (ProducerMediationModule)
ProducerMediationModule

带有骆驼的控制器:

@PostMapping("/request-reply")
    public String requestReplyMapping(@RequestBody String inputReq) {

        Exchange exchangeRequest = ExchangeBuilder.anExchange(camelContext).withBody(inputReq).build();
        Exchange exchangeResponse = producer.send("direct:request-reply",exchangeRequest);

        return exchangeResponse.getIn().getBody(String.class);

    }

骆驼路线:

@Component
public class RequestReplyRouter extends RouteBuilder {

    @Override
    public void configure() throws Exception {

        from("direct:request-reply").
        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}  ");
    }

}

JMS控制器代码(有效):

 @PostMapping(value="request-reply") 
public ResponseEntity<String> sendRequestAndReceiveReply (@RequestBody String prd2x4Request) { System.out.println("received prd2x4 request: "+prd2x4Request); 
String reply = prd2x4Wrapper.sendReqAndGetMessageId(prd2x4Request); 
return new ResponseEntity<String>(reply,HttpStatus.OK); 

} 

JMS MQ调用(正在工作):

private String sendReqAndGetMessage(String prd2x4Request) { 
String messageId = ""; 
MQQueue requestQueue = new MQQueue(RequestQueue);
 Session session = jmstemplate.getConnectionFactory().createConnection().createSession(); MessageProducer mp = session.createProducer(requestQueue); 
TextMessage message = session.createTextMessage(prd2x4Request);
 message.setStringProperty("JMS_IBM_Character_Set","IBM037"); 
mp.send(message);
 messageId = message.getJMSMessageID(); 
mp.close();
 session.close(); 
return messageId; 
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)