Проблема привязки Weblogic JMS, исключить инициализацию класса - PullRequest
0 голосов
/ 05 ноября 2019

Не удалось инициализировать исключение класса при попытке просмотреть привязки jndi для назначения JMS на сервере Weblogic 12c. Я установил модули 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.}

Я проверил несколько классов, которые были загружены, и я нашел следующие соответствующие классы, которые отображаются в 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

Пожалуйста, помогите мне выяснить, чего мне не хватает в моих конфигурациях.

1 Ответ

0 голосов
/ 06 ноября 2019

Приложение успешно развернуто и подключается к системе обмена сообщениями JMS. Я удалил javaee-api jar, поскольку он уже находился в пути к классам с другой версией, и добавил jms-api jar из библиотеки weblogic.

Однако назначение в дереве JNDI по-прежнему выдает ошибку.

...