Weblogic JMS 绑定问题,class 无法初始化异常
Weblogic JMS binding issue, class could not be initialized exception
无法初始化 class 在 Weblogic 12c 服务器中尝试查看 JMS 目标的 jndi 绑定时出现异常。我已经使用 JMS 目标队列和连接工厂设置了 JMS 模块。以下是部署在服务器中的东西:
JMS Module : MyAppJmsModule (JMSSystemResource)
JMS Server : MyAppJMSServer (Foreign Server)
JNDI Initial Context Factory: com.sun.jndi.fscontext.RefFSContextFactory
JNDI Connection URL: file:///abc/oracle/config/domains/domain_test/jms/MyAppJmsModule/MyAppJMSServer/jms
In the above path lies the .bindings file
Destination tab showing Name, Local JNDI name and Remote JNDI name correctly.
Connection Factories tab also showing the jndi names correctly.
Local jndi name is prefixed with jms/
现在,当我单击 JNDI 树内的目标时,出现以下错误:
Unexpected exception: failed to load return type: class java.lang.Object; nested exception is: java.lang.ClassNotFoundException: Failed to load class com.ibm.mq.jms.MQQueue
来自 weblogic 日志的错误:
An error was generated by the RMI server:
weblogic.jndi.internal.RootNamingNode.lookup(Ljava.lang.String;Ljava.util.Hashtable;)
java.lang.NoClassDefFoundError: Could not initialize class com.ibm.mq.jms.MQXAQueueConnectionFactory.
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at com.ibm.mq.jms.MQXAQueueConnectionFactoryFactory.class$(MQXAQueueConnectionFactoryFactory.java:58)
at com.ibm.mq.jms.MQXAQueueConnectionFactoryFactory.getObjectInstance(MQXAQueueConnectionFactoryFactory.java:58)
at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:321)
成功的 JNDI 绑定应该显示如下内容:
Binding Name: jms.QUEUENAME
Class: com.ibm.mq.jms.MQQueue
Hash Code: Some Value
toString Results: queue://QUEUEMGR/APP.QUEUENAME?persistence=2&expiry=0
我部署了一个已成功部署但处于警告状态的应用程序。当我检查应用程序的监控选项卡时,它显示以下错误:
Symtom{MDB,MEDIUM,MyApp-0.0.1-SNAPSHOT,MDB application MyApp-0.0.1-SNAPSHOT is NOT connected to messaging system.}
我检查了几个已加载的 classes,我发现以下相关的 classes 显示在应用程序 classpath 中:
~/application/config/com.ibm.mq-9.0.0.jar
~/application/config/com.ibm.mq.headers.jar
~/application/config/com.ibm.mq.jmqi-9.0.0.jar
~/application/config/com.ibm.mq.pcf-6.1.jar
~/application/config/com.ibm.mqjms-9.0.0.jar
~/application/config/commons-codec-1.10.jar
~/application/config/dhbcore.jar
~/application/config/fscontext.jar
~/application/config/javaee-api-5.jar
~/application/config/jms.jar
~/application/config/jndi.jar
~/application/config/providerutil.jar
Please help me to find out what is I am missing in my configurations.
应用程序已成功部署,并且正在连接到 JMS 消息传递系统。我已经删除了 javaee-api jar,因为它已经存在于具有不同版本的类路径中,并从 weblogic 库中添加了 jms-api jar。
但是,JNDI 树中的目标仍然给出错误。
无法初始化 class 在 Weblogic 12c 服务器中尝试查看 JMS 目标的 jndi 绑定时出现异常。我已经使用 JMS 目标队列和连接工厂设置了 JMS 模块。以下是部署在服务器中的东西:
JMS Module : MyAppJmsModule (JMSSystemResource)
JMS Server : MyAppJMSServer (Foreign Server)
JNDI Initial Context Factory: com.sun.jndi.fscontext.RefFSContextFactory
JNDI Connection URL: file:///abc/oracle/config/domains/domain_test/jms/MyAppJmsModule/MyAppJMSServer/jms
In the above path lies the .bindings file
Destination tab showing Name, Local JNDI name and Remote JNDI name correctly.
Connection Factories tab also showing the jndi names correctly.
Local jndi name is prefixed with jms/
现在,当我单击 JNDI 树内的目标时,出现以下错误:
Unexpected exception: failed to load return type: class java.lang.Object; nested exception is: java.lang.ClassNotFoundException: Failed to load class com.ibm.mq.jms.MQQueue
来自 weblogic 日志的错误:
An error was generated by the RMI server:
weblogic.jndi.internal.RootNamingNode.lookup(Ljava.lang.String;Ljava.util.Hashtable;)
java.lang.NoClassDefFoundError: Could not initialize class com.ibm.mq.jms.MQXAQueueConnectionFactory.
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at com.ibm.mq.jms.MQXAQueueConnectionFactoryFactory.class$(MQXAQueueConnectionFactoryFactory.java:58)
at com.ibm.mq.jms.MQXAQueueConnectionFactoryFactory.getObjectInstance(MQXAQueueConnectionFactoryFactory.java:58)
at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:321)
成功的 JNDI 绑定应该显示如下内容:
Binding Name: jms.QUEUENAME
Class: com.ibm.mq.jms.MQQueue
Hash Code: Some Value
toString Results: queue://QUEUEMGR/APP.QUEUENAME?persistence=2&expiry=0
我部署了一个已成功部署但处于警告状态的应用程序。当我检查应用程序的监控选项卡时,它显示以下错误:
Symtom{MDB,MEDIUM,MyApp-0.0.1-SNAPSHOT,MDB application MyApp-0.0.1-SNAPSHOT is NOT connected to messaging system.}
我检查了几个已加载的 classes,我发现以下相关的 classes 显示在应用程序 classpath 中:
~/application/config/com.ibm.mq-9.0.0.jar
~/application/config/com.ibm.mq.headers.jar
~/application/config/com.ibm.mq.jmqi-9.0.0.jar
~/application/config/com.ibm.mq.pcf-6.1.jar
~/application/config/com.ibm.mqjms-9.0.0.jar
~/application/config/commons-codec-1.10.jar
~/application/config/dhbcore.jar
~/application/config/fscontext.jar
~/application/config/javaee-api-5.jar
~/application/config/jms.jar
~/application/config/jndi.jar
~/application/config/providerutil.jar
Please help me to find out what is I am missing in my configurations.
应用程序已成功部署,并且正在连接到 JMS 消息传递系统。我已经删除了 javaee-api jar,因为它已经存在于具有不同版本的类路径中,并从 weblogic 库中添加了 jms-api jar。
但是,JNDI 树中的目标仍然给出错误。