JBoss Fuse - Чертеж архетипа Maven - Camel - Маршрутизация

Я пытаюсь построить простой Camel маршрут, используя в основном JBoss Fuse и Maven. Я использую команду mvn archetype:generate для создания скелетного проекта.

Когда в приглашении говорится: «Выберите число или примените фильтр (формат: [groupId:] artifactId, с учетом регистра, содержит): 582:» Я набираю camel.

Затем я выбираю этот вариант: 49: remote -> org.apache.camel.archetypes:camel-archetype-blueprint (Creates a new Camel project with OSGi blueprint support. Ready to be deployed in OSGi.)

См. Ниже:

Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): : Я набираю 49 для этого варианта.

Для опции Choose org.apache.camel.archetypes:camel-archetype-blueprint version: я нажимаю ввод для Camel 2.15.1.

Define value for property 'groupId': : org.me

Для опции: Define value for property 'artifactId': : fuse-ghettoblasting-blueprint

Для опции: Define value for property 'version': 1.0-SNAPSHOT: : 1.0

Для опции: Define value for property 'package': org.me: : org.me.demo

Я запускаю эту команду mvn clean install, чтобы установить pom.xml и jar в свой локальный репозиторий Maven.

Затем я перехожу к консоли JBoss Fuse и набираю:

JBossFuse:karaf@root> osgi:install mvn:org.me/fuse-ghettoblasting-blueprint/1.0

Затем я получаю идентификатор пакета: Bundle ID: 389

Когда я набираюJBossFuse:karaf@root> list, я вижу пакет, но он говорит Failure в поле Blueprint, как показано ниже: ID State Blueprint Spring Level Name `[389] [Active] [Failure] [] [60] Camel Blueprint Route (1.0.0)

У меня был аналогичный опыт при просмотре этого руководства: https://codevomit.wordpress.com/2014/12/24/simple-camel-route-in-jboss-fuse/

Это руководство включало фактическое создание маршрутов в интерфейсе ActiveMQ на локальном хосте, работающем на порту 8181.

Есть ли там эксперт, читающий это, который знает, что мне не хватает? Почему не работает Blueprint? Почему сообщение, отправленное из очереди, не регистрируется, как показано в руководстве от CodeVomit?

С уважением,

ОБНОВЛЕНИЕ

Вот мой исходный код файла blueprint.xml.

<?xml version="1.0" encoding="UTF-8"?>
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:camel="http://camel.apache.org/schema/blueprint"
       xsi:schemaLocation="
       http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd
       http://camel.apache.org/schema/blueprint http://camel.apache.org/schema/blueprint/camel-blueprint.xsd">


<!-- connect to the local ActiveMQ broker -->
<bean id="activemq" class="org.apache.activemq.camel.component.ActiveMQComponent">
  <property name="brokerURL" value="tcp://localhost:61616" />
  <property name="userName" value="user123" />
  <property name="password" value="user123" />
  <property></property>
</bean>

  <camelContext id="blueprintContext" trace="false" xmlns="http://camel.apache.org/schema/blueprint">

    <route id="queue2queue">
        <from uri="activemq://source-queue" />
        <log message="the message body is: ${body}" loggingLevel="INFO" />
        <to uri="activemq://sink-queue" />
    </route>



  </camelContext>

</blueprint>

person user3870315    schedule 09.04.2015    source источник
comment
Если вы хотите подключиться к локальному брокеру, вы можете опустить объявление activemq. В JBoss Fuse 6.1 есть пример, см. В разделе «Краткое руководство» - есть пример JMS, в котором используется ActiveMQ + Camel.   -  person Claus Ibsen    schedule 11.04.2015
comment
Когда вы пишете объявление activemq, вы имеете в виду элементы <to> и <from> внутри элемента <route>? Спасибо за полезный ответ!   -  person user3870315    schedule 12.04.2015


Ответы (1)


Вы должны использовать ту же версию Apache Camel, которую поддерживает / поставляется с JBoss Fuse. Camel 2.15.x еще не поддерживается, для этого требуется готовящаяся к выпуску версия JBoss Fuse 6.2.

Вы можете использовать инструменты Fuse IDE для создания проекта Fuse, который использует правильную версию Camel.

Альтернативой является корректировка pom.xml, созданного архетипом, на ту же версию Camel, что и Fuse. Вы можете найти версию Camel из оболочки Fuse, набрав list и найдите строку camel-core, которая должна напечатать версию.

person Claus Ibsen    schedule 10.04.2015
comment
Я попробовал ваш «альтернативный» метод, так как кривая обучения Fuse IDE довольно сложна, и я все еще получаю, что Blueprint является [Failure] при запуске пакета. Спасибо, что угадал, что не так с моей программой, хотя Клаус. : D - person user3870315; 10.04.2015
comment
Вы можете попробовать поискать в файле журнала, в файле data / logs / fuse.log. Или используйте log: display из оболочки - последний показывает только 1000 строк назад (я думаю) - person Claus Ibsen; 11.04.2015
comment
Это работает при копировании файла cfg.xml, упомянутого в кратком руководстве jms, в папку etc и удалении элемента bean с id=activemq. :) Спасибо вам за помощь. Может быть, упомяните об этом в своем ответе, чтобы получить надежную помощь для какого-то бедного сбитого с толку программиста? : D - person user3870315; 13.04.2015