新的MQConnectionFactory()在JBoss中抛出NullPointerException

时间:2010-07-02 14:38:32

标签: java jboss jms ibm-mq

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

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
  • connector.jar
  • jta.jar
  • com.ibm.mq.jmqi.jar
  • dhbcore.jar
  • providerutil.jar
  • com.ibm.mq.pcf.jar
  • fscontext.jar

3 个答案:

答案 0 :(得分:1)

您似乎使用的是WMQ的v7.0.1.0。您是否按照v7 WMQ Using Java manual中的说明配置了CLASSPATH?假设进行标准安装,运行时CLASSPATH中唯一需要的jar是com.ibm.mqjms.jar。标准安装中大约有10个罐子,我没有在列表中看到,所以我不确定你是否列出了你的CLASSPATH变量中的内容或java / lib中的内容,但它不是我在任何一种情况下所期望的列表。如果您从某处抓取了jar文件,请尝试使用full client install

答案 1 :(得分: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

答案 2 :(得分:0)

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