JBoss Fuse - Maven 原型蓝图 - Camel - 路由
JBoss Fuse - Maven Archetype Blueprint - Camel - Routing
我正在尝试使用 JBoss Fuse
和 Maven
构建一个简单的 Camel
路线。我正在使用命令 mvn archetype:generate
创建骨架项目。
当提示说 "Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 582:" 我输入 camel
。
然后我select这个选项: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
然后我收到一个包 ID:
Bundle ID: 389
当我输入时JBossFuse:karaf@root> list
我看到了捆绑包,但它在蓝图字段中显示 Failure
,如下所示:
ID 状态蓝图 Spring 关卡名称
`[ 389] [有效] [失败] [ ] [ 60] 骆驼蓝图路线 (1.0.0)
我在 运行 完成本教程时也有过类似的经历:https://codevomit.wordpress.com/2014/12/24/simple-camel-route-in-jboss-fuse/
本教程实际涉及在本地主机 运行宁在端口 8181
上的 ActiveMQ 界面中创建路由
有没有专家读过这篇文章知道我错过了什么?为什么蓝图失败了?为什么从队列发送的消息没有记录在 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>
您应该使用与 JBoss Fuse supports/ships 相同版本的 Apache Camel。尚不支持 Camel 2.15.x 这需要即将发布的 JBoss Fuse 6.2 版本。
您可以使用 Fuse IDE 工具创建一个使用正确版本的 Camel 的 Fuse 项目。
另一种方法是将原型生成的 pom.xml
调整为 Fuse 提供的相同 Camel 版本。您可以通过键入 list
从 Fuse shell 中找到 Camel 版本,然后找到应该打印版本的 camel-core
行。
我正在尝试使用 JBoss Fuse
和 Maven
构建一个简单的 Camel
路线。我正在使用命令 mvn archetype:generate
创建骨架项目。
当提示说 "Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 582:" 我输入 camel
。
然后我select这个选项: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
然后我收到一个包 ID:
Bundle ID: 389
当我输入时JBossFuse:karaf@root> list
我看到了捆绑包,但它在蓝图字段中显示 Failure
,如下所示:
ID 状态蓝图 Spring 关卡名称
`[ 389] [有效] [失败] [ ] [ 60] 骆驼蓝图路线 (1.0.0)
我在 运行 完成本教程时也有过类似的经历:https://codevomit.wordpress.com/2014/12/24/simple-camel-route-in-jboss-fuse/
本教程实际涉及在本地主机 运行宁在端口 8181
上的 ActiveMQ 界面中创建路由有没有专家读过这篇文章知道我错过了什么?为什么蓝图失败了?为什么从队列发送的消息没有记录在 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>
您应该使用与 JBoss Fuse supports/ships 相同版本的 Apache Camel。尚不支持 Camel 2.15.x 这需要即将发布的 JBoss Fuse 6.2 版本。
您可以使用 Fuse IDE 工具创建一个使用正确版本的 Camel 的 Fuse 项目。
另一种方法是将原型生成的 pom.xml
调整为 Fuse 提供的相同 Camel 版本。您可以通过键入 list
从 Fuse shell 中找到 Camel 版本,然后找到应该打印版本的 camel-core
行。