PublishJMS 处理器无法将消息写入 IBM Websphere MQ
PublishJMS processor failing for writing message to IBM Websphere MQ
我在通过 PublishJMS 处理器向 IBM Websphere MQ 队列发布消息时遇到问题。
PublishJMS 处理器和JMS 控制器服务的配置,我已验证MQ 连接没有问题。我相信我需要在 PublishJMS 或控制器服务中设置一些额外的 属性。
下面是错误消息堆栈。
Caused by: com.ibm.msg.client.jms.DetailedMessageFormatException: JMSCC0051: The property 'JMS_IBM_MsgType' should be set using type 'java.lang.Integer', not 'java.lang.String'.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_102]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0_102]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_102]
at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[na:1.8.0_102]
at com.ibm.msg.client.commonservices.j2se.NLSServices.createException(NLSServices.java:314) ~[na:na]
at com.ibm.msg.client.commonservices.nls.NLSServices.createException(NLSServices.java:228) ~[na:na]
at com.ibm.msg.client.jms.internal.JmsErrorUtils.createException(JmsErrorUtils.java:104) ~[na:na]
at com.ibm.msg.client.jms.internal.JmsMessageImpl.checkSettablePropertyName(JmsMessageImpl.java:2197) ~[na:na]
at com.ibm.msg.client.jms.internal.JmsMessageImpl.setStringProperty(JmsMessageImpl.java:1690) ~[na:na]
at com.ibm.jms.JMSMessage.setStringProperty(JMSMessage.java:1491) ~[na:na]
at org.apache.nifi.jms.processors.JMSPublisher.createMessage(JMSPublisher.java:87) ~[nifi-jms-processors-1.1.0.2.1.2.0-10.jar:1.1.0.2.1.2.0-10]
at org.springframework.jms.core.JmsTemplate.doSend(JmsTemplate.java:603) ~[spring-jms-4.2.4.RELEASE.jar:4.2.4.RELEASE]
at org.springframework.jms.core.JmsTemplate.doInJms(JmsTemplate.java:584) ~[spring-jms-4.2.4.RELEASE.jar:4.2.4.RELEASE]
at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:494) ~[spring-jms-4.2.4.RELEASE.jar:4.2.4.RELEASE]
... 17 common frames omitted
您似乎遇到了一个已知缺陷:APAR IT02814(JMSCC0051:属性 'JMS_IBM_REPORT_PASS_CORREL_ID' 应该使用类型 'JAVA.LANG.INTEGER',而不是 'JAVA.LANG.STRING'.)
它声明 v7.0 之前的 IBM MQ 类 for JMS 允许传递非 INT,v7.0 和更高版本更严格。 IBM 已将修复程序添加到 v7.5.0.5 和 v8.0.0.2 以使其继续工作,APAR 还提供了有关如何更改应用程序以在没有修复程序的情况下工作的建议。
我在通过 PublishJMS 处理器向 IBM Websphere MQ 队列发布消息时遇到问题。
PublishJMS 处理器和JMS 控制器服务的配置,我已验证MQ 连接没有问题。我相信我需要在 PublishJMS 或控制器服务中设置一些额外的 属性。
下面是错误消息堆栈。
Caused by: com.ibm.msg.client.jms.DetailedMessageFormatException: JMSCC0051: The property 'JMS_IBM_MsgType' should be set using type 'java.lang.Integer', not 'java.lang.String'.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_102]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0_102]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_102]
at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[na:1.8.0_102]
at com.ibm.msg.client.commonservices.j2se.NLSServices.createException(NLSServices.java:314) ~[na:na]
at com.ibm.msg.client.commonservices.nls.NLSServices.createException(NLSServices.java:228) ~[na:na]
at com.ibm.msg.client.jms.internal.JmsErrorUtils.createException(JmsErrorUtils.java:104) ~[na:na]
at com.ibm.msg.client.jms.internal.JmsMessageImpl.checkSettablePropertyName(JmsMessageImpl.java:2197) ~[na:na]
at com.ibm.msg.client.jms.internal.JmsMessageImpl.setStringProperty(JmsMessageImpl.java:1690) ~[na:na]
at com.ibm.jms.JMSMessage.setStringProperty(JMSMessage.java:1491) ~[na:na]
at org.apache.nifi.jms.processors.JMSPublisher.createMessage(JMSPublisher.java:87) ~[nifi-jms-processors-1.1.0.2.1.2.0-10.jar:1.1.0.2.1.2.0-10]
at org.springframework.jms.core.JmsTemplate.doSend(JmsTemplate.java:603) ~[spring-jms-4.2.4.RELEASE.jar:4.2.4.RELEASE]
at org.springframework.jms.core.JmsTemplate.doInJms(JmsTemplate.java:584) ~[spring-jms-4.2.4.RELEASE.jar:4.2.4.RELEASE]
at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:494) ~[spring-jms-4.2.4.RELEASE.jar:4.2.4.RELEASE]
... 17 common frames omitted
您似乎遇到了一个已知缺陷:APAR IT02814(JMSCC0051:属性 'JMS_IBM_REPORT_PASS_CORREL_ID' 应该使用类型 'JAVA.LANG.INTEGER',而不是 'JAVA.LANG.STRING'.)
它声明 v7.0 之前的 IBM MQ 类 for JMS 允许传递非 INT,v7.0 和更高版本更严格。 IBM 已将修复程序添加到 v7.5.0.5 和 v8.0.0.2 以使其继续工作,APAR 还提供了有关如何更改应用程序以在没有修复程序的情况下工作的建议。