Siddhi Ошибка при подключении к JMS-провайдеру

Я попытался отправить события из WSO2 SP в activeMQ через siddhi-io- jms extension, но у меня следующая ошибка. Ошибка при подключении к JMS-провайдеру. NamingException при получении начального контекста. Я следил за этим документом для поддержки транспортировки jms https://docs.wso2.com/display/SP400/Supporting+Different+Transports, поместил все необходимые файлы jar в lib, также я правильно установил @sink в приложении siddhi, factory.initial < / em> и provider.url верны. Есть идеи, почему SP не может подключиться к jms?


person Dominik Zatloukal    schedule 27.03.2018    source источник


Ответы (1)


Согласно спецификации OSGi JNDI, все InitialContextFactories должны быть представлены как службы OSGi. Но файл activemq-client-5.x.x.jar не содержит SPI, а задает системные свойства. Это вызывает исключение NamingException при получении начального контекста. Итак, нам нужно зарегистрировать эти ICF в OSGi env.

Для этого нам нужно использовать инструмент icf-provider. (Sh | bat) в SP_HOME / bin. Это добавит BundleActivator к предоставленному пользователем jar / bundle, который зарегистрирует упомянутую пользователем реализацию ICF в соответствии со спецификацией OSGi JNDI.

e.g.

./icf-provider.sh org.apache.activemq.jndi.ActiveMQInitialContextFactory <Jar Directory/activemq-client-5.9.0.jar> <Destination>

Обратитесь к https://github.com/wso2-extensions/siddhi-io-jms/

person Chiran Fernando    schedule 28.03.2018
comment
Спасибо за ответ. Я попытался использовать инструмент icf-provider, но ничего не вышло. Нет сообщений на терминале, нет пакета в папке назначения. Я использовал команду для окон. - person Dominik Zatloukal; 28.03.2018
comment
Кажется, есть открытая проблема для icf-провайдера в среде Windows # 1599 - person Chiran Fernando; 28.03.2018
comment
Я попытался отредактировать bat-файл icf-provider, поэтому я удалил свойство -Dcarbon.home =% CARBON_HOME из команды java -cp, и теперь он работает, однако в CustomBundleActivator.java есть ошибки, например пакет org.osgi.framework не существует или метод не переопределяет и не реализует метод из супертипа. - person Dominik Zatloukal; 28.03.2018
comment
Теперь я возвращаю свойство carbon.home в файл bat, но изменяю -Dcarbon.home =% CARBON_HOME на -Dcarbon.home =% CARBON_HOME% (удалены кавычки, добавлены проценты символ). Теперь возникает следующая ошибка: ** java.lang.IllegalArgumentException: недопустимый символ в непрозрачной части с индексом 11 ** - person Dominik Zatloukal; 28.03.2018
comment
Наконец я решил это. Bat-файл и java-код были плохими, поэтому я меняю их и тестирую. Теперь работает. Здесь - ›github.com/wso2/carbon-kernel/issues/1599 Я воспроизвел свое решение. - person Dominik Zatloukal; 28.03.2018