WSO2 ESB Проблема с интеграцией Tibco EMS 8.0
Я пытался включить транспорт JMS на WSO2 ESB с Tibco EMS.
С Tibco BW 6.3.0 - скопировал следующие файлы клиента {wso2esb-4.8.0}\repository\components\lib
tibjms.jar, jms.jar
- работает без проблем.
С Tibco EMS 8.0 скопированы следующие банки {wso2esb-4.8.0}\repository\components\lib
tibjms.jar, jms-2.0.jar
- исключение результатов как ClassNotFound.
Согласно документации WSO2 ESB, он поддерживает только спецификации JMS 1.1 и 1.0.2b. Так пробовал с комбинацией баночек.
https://docs.wso2.org/display/ESB481/JMS+Transport
то есть Jms.jar из Tibco-6.3.0 и tibjms.jar из Tibco 8.0 - Результаты такие же исключения, как ClassNotFound. Ниже приведено исключение трассировки стека.
java.lang.NoClassDefFoundError: javax / jms / JMSContext по адресу com.tibco.tibjms.naming.TibjmsContext$Messenger.(TibjmsContext.java:316) по адресу com.tibco.tibjms.naming.TibjmsContext.mstext:65 на com.tibco.tibjms.naming.TibjmsContext.lookup(TibjmsContext.java:491) на javax.naming.InitialContext.lookup(InitialContext.java:411) на org.apache.axis2.transport.jms.JMSUtils.lookup(JMSUtils.lookup (JMSUtils.lookup).java:583) по адресу org.apache.axis2.transport.jms.JMSConnectionFactory.(JMSConnectionFactory.java:93) по адресу org.apache.axis2.transport.jms.JMSConnectionFactoryManager.loadConnectionFactoryDefinitions(JMSConangare.jpg).axis2.transport.jms.JMSConnectionFactoryManager.(JMSConnectionFactoryManager.java:45) в org.apache.axis2.transport.jms.JMSSender.init(JMSSender.java:67) в org.apache.axis2.context.ConfigurationSite ConfigurationContextFactory.java:300) в org.apache.axis2.context.ConfigurationContextFactory.init(ConfigurationContextFactory.java:231) по адресу org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContext(ConfigurationContextFactory.java:93) по адресу org.wso2.carbon.core.CarbonConfigurationContextFactory.createNewConfigurationContext(CarbonConfact.jpg).65.CarbonServerManager.:77)
Конфигурация Trasport в axis2.xml
<transportReceiver class="org.apache.axis2.transport.jms.JMSListener" name="jms">
<parameter locked="false" name="ESB-POC-CF-00">
<parameter locked="false" name="java.naming.factory.initial">com.tibco.tibjms.naming.TibjmsInitialContextFactory</parameter>
<parameter locked="false" name="java.naming.provider.url">tcp://127.0.0.1:7222</parameter>
<parameter locked="false" name="java.naming.security.principal">admin</parameter>
<parameter locked="false" name="java.naming.security.credentials"/>
<parameter locked="false" name="transport.jms.ConnectionFactoryJNDIName">ESB-POC-CF-00</parameter>
<parameter locked="false" name="transport.jms.JMSSpecVersion">1.1</parameter>
<parameter locked="false" name="transport.jms.ConnectionFactoryType">queue</parameter>
<parameter locked="false" name="transport.jms.UserName">xprk119</parameter>
<parameter locked="false" name="transport.jms.Password">esb119</parameter>
</parameter>
Так же Tibco 8.0 поддерживает обратную совместимость. Мы заинтересованы в интеграции ESB с версией Tibco 8.0. Пожалуйста, дайте мне знать, как решить эту проблему.
3 ответа
Вы должны также включить jms-2.0.jar, который входит в дистрибутив EMS 8.0. Вот где твой пропавший класс.
НТН.
Махеш.
У меня была похожая проблема несколько дней назад. Я думаю, что проблема связана с OSGi и порядком загрузки загрузчиков классов. Я решил это с помощью плагинов OSGi, которые поставляются с EMS 8.2 (я не знал, также ли с предыдущими 8.x), и ссылки на них из плагинов, которые нуждаются в них.
У меня была похожая проблема с WebSphere и Tibco 8. Добавление обоих jar - tibjms.jar и ms-2.0.jar в classpath решило проблему