JBoss保险丝 - Maven原型蓝图 - 骆驼 - 路由

时间:2015-04-09 19:14:53

标签: java maven jboss apache-camel blueprint

我正在尝试使用CamelJBoss 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:,我按下Enter for 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

然后我收到一个包ID: Bundle ID: 389

当我输入JBossFuse:karaf@root> list时 我看到了这个包,但它在Blueprint字段中显示Failure,如下所示:    ID状态蓝图弹簧级别名称 `[389] [有效] [失败] [] [60]骆驼蓝图路线(1.0.0)

在完成本教程时我有类似的经验:https://codevomit.wordpress.com/2014/12/24/simple-camel-route-in-jboss-fuse/

本教程涉及在端口8181上运行的localhost上的ActiveMQ接口中实际创建路由

是否有专家在读这篇文章知道我错过了什么?为什么蓝图失败了?为什么从Queue发送的消息未记录,如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>

1 个答案:

答案 0 :(得分:1)

您应该使用与JBoss Fuse支持/附带相同版本的Apache Camel。尚未支持Camel 2.15.x,这需要即将推出的JBoss Fuse 6.2版本。

您可以使用Fuse IDE工具创建使用正确版本的Camel的Fuse项目。

另一种方法是将原型所产生的pom.xml调整为与Fuse相同的Camel版本。您可以通过键入list找到Fuse shell中的Camel版本,并找到应该打印版本的camel-core行。