2

我正在尝试执行以下命令:

MQConnectionFactory connFactory = new MQConnectionFactory();

我得到一个似乎无法追踪的空指针异常。我在下面附上了堆栈跟踪。

java.lang.NullPointerException
  at com.ibm.msg.client.jms.internal.JmsFactoryFactoryImpl.getInstance(JmsFactoryFactoryImpl.java:169)
  at com.ibm.msg.client.jms.admin.JmsConnectionFactoryImpl.setProviderFactory(JmsConnectionFactoryImpl.java:165)
  at com.ibm.mq.jms.MQConnectionFactory.<init>(MQConnectionFactory.java:271)
  at com.foundation.agent.plugin.JMSClient.createConnection(JMSClient.java:154)
  at com.foundation.agent.plugin.JMSClient.launch(JMSClient.java:108)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  at java.lang.reflect.Method.invoke(Method.java:597)

我正在加载new MQConectionFactory()使用类加载器调用的类,所以我怀疑某些 JBoss JMS 库可能会导致这种情况。

更多信息:

  • com.ibm.mq.runtime_7.0.1.0\lib

罐子:

  • com.ibm.mq.headers.jar
  • com.ibm.mqjms.jar
  • jms.jar
  • com.ibm.mq.jar
  • 连接器.jar
  • jta.jar
  • com.ibm.mq.jmqi.jar
  • dhbcore.jar
  • providerutil.jar
  • com.ibm.mq.pcf.jar
  • fscontext.jar
4

3 回答 3

1

您似乎正在使用 WMQ v7.0.1.0。您是否按照v7 WMQ 使用 Java 手册中的说明配置了 CLASSPATH ?假设标准安装,运行时 CLASSPATH 中唯一需要的 jar 是 com.ibm.mqjms.jar。标准安装中大约有 10 个 jar,我在您的列表中没有看到,所以我不确定您是否列出了 CLASSPATH 变量中的内容或 java/lib 中的内容,但这不是我所期望的列表。如果您从某个地方获取了 jar 文件,请尝试使用完整的客户端安装

于 2010-07-03T04:23:06.033 回答
1

反编译第 169 行 JmsFactoryFactoryImpl 的代码,可以看到上面几行有跟踪输出。在与您具有相同异常的系统上,系统错误(在我的情况下为 Tomcat 的 catalina.out)上的跟踪输出显示以下内容:

      WorkQueueMananger Contents
                           --------------------------

|   Maintain ThreadPool size     :-  false
|   Maximum ThreadPool size      :-  -1
|   ThreadPool inactive timeout  :-  0
|   unavailable -                :-  com.ibm.msg.client.commonservices.CSIException: JMSCS0002

使用该代码,您可以访问:http: //publib.boulder.ibm.com/infocenter/wmqv7/v7r0/index.jsp ?topic=%2Fcom.ibm.mq.javadoc.doc%2FWMQJMSClasses%2Ferrorcodes.html

于 2012-06-06T08:00:22.000 回答
0

即使添加了所有必需的 JAR,我也遇到了同样的问题。最后,将我的 JDK 从 IBM JDK 更改为 Oracle/Sun JDK 后问题得到解决。看起来 IBM JDK(独立)没有足够的东西来创建连接工厂。

于 2013-08-21T22:34:46.960 回答