WebSphere MQ调用失败,代码为';2';(';MQCC#U失败';)原因';2397';(';MQRC#U JSSE#U错误';)在使用jetty配置进行MQ连接时

WebSphere MQ调用失败,代码为';2';(';MQCC#U失败';)原因';2397';(';MQRC#U JSSE#U错误';)在使用jetty配置进行MQ连接时,jetty,ibm-mq,Jetty,Ibm Mq,我正在jetty-env.xml文件中将MQ连接配置为: <New id="myJmsConnection" class="org.eclipse.jetty.plus.jndi.Resource"> <Arg><Ref refid="wac"/></Arg> <Arg>jms/mymq</Arg> <Arg> <New class="com.ibm.mq.jm

我正在jetty-env.xml文件中将MQ连接配置为:

<New id="myJmsConnection" class="org.eclipse.jetty.plus.jndi.Resource">
    <Arg><Ref refid="wac"/></Arg>
    <Arg>jms/mymq</Arg>
    <Arg>
           <New class="com.ibm.mq.jms.MQConnectionFactory">
                <Set name="connectionNameList">x.x.x.x</Set>
                <Set name="port">xxx</Set>
                <Set name="queueManager">xxx</Set>
                <Set name="channel">xxx.CHANNEL</Set>
                <Set name="transportType">1</Set>
                <Set name="SSLCipherSuite">xxxx</Set>
        </New>
    </Arg>
  </New>

我的问题是,为什么连接可以从Java代码中工作,但在jetty env.xml中配置时会引发MQ异常?

这表明jetty环境(我不熟悉)没有正确设置JSSE环境。您是否有任何未添加到问题中的其他错误信息?请发布错误的完整堆栈。您确定您的独立应用程序和jetty在路径中都有完全相同的MQ相关jar文件吗?您正在使用哪个特定版本的MQ jar文件?如果在linux系统上,可以使用
unzip-pcom.ibm.mq.jar META-INF/MANIFEST.MF | grep-i实现版本
获得该版本。这是什么类型的JRE(例如:IBM、Oracle、OpenJDK)。您指定的具体SSLCipherSuite是什么?如果整个堆栈没有提供有助于解决此问题的信息,您可以通过设置java系统属性
javax.net.debug=all
来提供TLS调试信息,例如,将以下内容添加到java启动命令
-Djavax.net.debug=all
。这与在这个问题上。请以后小心标签。Vishal,你对我们的后续问题有什么进一步的意见吗?您是否能够解决该问题,如果能够,请发布一个答案,说明该解决方案是为了帮助将来遇到相同问题的人。
@Bean(name="MQConnectionFactory")
    public ConnectionFactory connectionFactory() {

        if (factory == null) {
            factory = new MQConnectionFactory();
            try {
                factory.setConnectionNameList(env.getRequiredProperty(HOST));
                factory.setPort(Integer.parseInt(env.getRequiredProperty(PORT)));            
                factory.setQueueManager(env.getRequiredProperty(QUEUE_MANAGER));
                factory.setChannel(env.getRequiredProperty(CHANNEL));
                factory.setTransportType(WMQConstants.WMQ_CM_CLIENT);
                factory.setSSLCipherSuite(env.getRequiredProperty(SSL_CIPHER_SUITE));
                factory.setStringProperty(WMQConstants.USERID, env.getRequiredProperty(QUEUE_USERID));
                factory.setStringProperty(WMQConstants.PASSWORD, env.getRequiredProperty(QUEUE_PASSWORD));

            } catch (JMSException e) {
                throw new RuntimeException(e);
            }
        }
        return factory;
    }