在我的 spring 引导应用程序中获取 IBM MQ 连接工厂

Get IBM MQ connection factory in my spring boot application

我在尝试向 IBM MQ 发送消息时遇到以下错误,我在 Websphere 上创建了一个队列连接工厂,该工厂经过测试并成功连接到已部署的 MQ,然后我通过 jndi 查找它名字.

我正在使用 ibm.mq.allclient 作为 Gradle 依赖项。

如有任何帮助,我将不胜感激。

    org.springframework.jms.UncategorizedJmsException: Uncategorized exception occurred during JMS processing; nested exception is com.ibm.msg.client.jms.DetailedJMSException: JMSFMQ6312: An exception occurred in the Java(tm) MQI.
    The Java(tm) MQI has thrown an exception describing the problem. 
    See the linked exception for further information.; nested exception is com.ibm.mq.jmqi.JmqiException: CC=2;RC=2195;AMQ9546: Error return code received. [1=java.lang.reflect.InvocationTargetException[null],3=NativeConstructorAccessorImpl.newInstance0]
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at org.springframework.jms.support.JmsUtils.convertJmsAccessException(JmsUtils.java:316)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at org.springframework.jms.support.JmsAccessor.convertJmsAccessException(JmsAccessor.java:169)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:487)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at org.springframework.jms.core.JmsTemplate.send(JmsTemplate.java:570)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:95)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at java.lang.reflect.Method.invoke(Method.java:508)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at javax.servlet.http.HttpServlet.service(HttpServlet.java:595)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1232)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:781)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:480)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:136)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:97)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:96)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:108)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at org.springframework.boot.web.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:115)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at org.springframework.boot.web.support.ErrorPageFilter.access[=11=]0(ErrorPageFilter.java:59)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at org.springframework.boot.web.support.ErrorPageFilter.doFilterInternal(ErrorPageFilter.java:90)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at org.springframework.boot.web.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:108)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:967)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1107)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3928)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:304)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1007)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1817)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:200)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:463)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:530)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:316)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:287)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.io.async.ResultHandler.run(ResultHandler.java:905)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1881)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R Caused by: com.ibm.msg.client.jms.DetailedJMSException: JMSFMQ6312: An exception occurred in the Java(tm) MQI.
    The Java(tm) MQI has thrown an exception describing the problem. 
    See the linked exception for further information.
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:88)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:57)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at java.lang.reflect.Constructor.newInstance(Constructor.java:437)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.msg.client.commonservices.j2se.NLSServices.createException(NLSServices.java:314)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.msg.client.commonservices.nls.NLSServices.createException(NLSServices.java:228)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.msg.client.wmq.factories.WMQXAConnectionFactory.createV7ProviderConnection(WMQXAConnectionFactory.java:175)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.msg.client.wmq.factories.WMQConnectionFactory.createProviderConnection(WMQConnectionFactory.java:6200)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.msg.client.wmq.factories.WMQXAConnectionFactory.createProviderXAConnection(WMQXAConnectionFactory.java:102)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.msg.client.jms.admin.JmsConnectionFactoryImpl.createXAConnectionInternal(JmsConnectionFactoryImpl.java:364)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.mq.jms.MQXAConnectionFactory.createXAConnection(MQXAConnectionFactory.java:98)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.ejs.jms.JMSManagedConnection.createConnection(JMSManagedConnection.java:1499)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.ejs.jms.JMSManagedConnection.<init>(JMSManagedConnection.java:352)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.ejs.jms.JMSManagedConnectionFactory.createUnifiedManagedConnection(JMSManagedConnectionFactory.java:1301)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.ejs.jms.JMSManagedConnectionFactory.createManagedConnection(JMSManagedConnectionFactory.java:682)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.ejs.jms.WMQJMSRAManagedConnectionFactory.createManagedConnection(WMQJMSRAManagedConnectionFactory.java:704)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.ejs.j2c.FreePool.createManagedConnectionWithMCWrapper(FreePool.java:2161)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.ejs.j2c.FreePool.createOrWaitForConnection(FreePool.java:1839)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.ejs.j2c.PoolManager.reserve(PoolManager.java:3818)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.ejs.j2c.PoolManager.reserve(PoolManager.java:3094)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.ejs.j2c.ConnectionManager.allocateMCWrapper(ConnectionManager.java:1548)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.ejs.j2c.ConnectionManager.allocateConnection(ConnectionManager.java:1031)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.ejs.jms.JMSConnectionFactoryHandle.createConnection(JMSConnectionFactoryHandle.java:256)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at org.springframework.jms.support.JmsAccessor.createConnection(JmsAccessor.java:180)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:474)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  ... 75 more
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R Caused by: com.ibm.mq.jmqi.JmqiException: CC=2;RC=2195;AMQ9546: Error return code received. [1=java.lang.reflect.InvocationTargetException[null],3=NativeConstructorAccessorImpl.newInstance0]
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.mq.jmqi.JmqiEnvironment.processESESecurity(JmqiEnvironment.java:987)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.mq.jmqi.JmqiEnvironment.getInstance(JmqiEnvironment.java:832)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.mq.jmqi.JmqiEnvironment.getMQI(JmqiEnvironment.java:655)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.msg.client.wmq.factories.WMQXAConnectionFactory.createV7ProviderConnection(WMQXAConnectionFactory.java:167)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  ... 93 more
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R Caused by: java.lang.reflect.InvocationTargetException
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:88)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:57)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at java.lang.reflect.Constructor.newInstance(Constructor.java:437)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  at com.ibm.mq.jmqi.JmqiEnvironment.processESESecurity(JmqiEnvironment.java:906)
    [1/6/19 19:32:45:710 EET] 00000245 SystemErr     R  ... 96 more

2195 是一个非常普遍的错误,仅表示意外错误,但在许多情况下,这意味着您混合了来自不同 mq 客户端版本的 jar。检查以下项目:

  1. 如果您在 CLASSPATH 中没有 Oracle jms.jar,请从 IBM 提供的 MQ 客户端安装中添加 jms.jar 2.0(这可以来自任何完整客户端、redist 客户端或 java-all 客户端)。

  2. 如果您有 Oracle jms.jar,请检查 MANIFEST.MF 以确保它是 2.0 版本。

  3. 确保除了 com.ibm.mq.allclient.jar.

  4. 之外没有其他 com.ibm.mq*.jar 文件