widget_id | widget_name | widget_value
(INT) (VARCHAR 50) (INT)
我希望每隔5分钟轮询这个toprocess
队列(使用Camel-Quartz),并将这些consumes消息主体中找到的字符串(fizz、buzz等)合并到JDBCselect
语句中,该语句查找widget_name
与字符串(例如fizz或buzz)匹配的任何小部件。
然后,我要获取从JDBC调用中检索的每个
widget
记录,并将其放在ready
队列中。最后,burninator
bean应该使用ready
并将每个Widget
POJO传递给其burninator#burninate(Widget)
方法。
所以总结一下:
- 外部进程在
toprocess
队列 上放置字符串,如“fizz” - 骆驼-石英作业每5分钟触发一次,并“fizz”(和任何其他)排队
- camel-jdbc
select*FROM widgets WHERE widget_name='fizz'
-->我怀疑我需要XPath - 假设查询返回25
小部件
记录 - 所有25个都被序列化(binary/json/xml?)并放置在
就绪
队列 上 - 一个接一个地
burninator#burninate(Widget)
出列ready
,并与下一个出列的Widget 一起执行
以下是我目前所掌握的,但我知道这是错误的:
<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
<package>com.myapp.bus</package>
<template id="camelTemplate"/>
<route>
<from uri="quartz://toProcessPollerJob?cron=*+5+*+*+*+?"/>
<to uri="activemq:toProcess"/>
<setBody>
<constant>
SELECT
*
FROM
widgets
WHERE
widget_name = ??? (e.g., fizz, buzz)
</constant>
</setBody>
<marshall>
<serialization/>
</marshall>
<to uri="activemq:ready"/>
<unmarshall>
<serialization/>
</unmarshall>
<to uri="bean:burninator?method=burninate"/>
</route>
</camelContext>
有没有骆驼巫师可以在这里给我指明正确的方向(除了参考《骆驼在行动中》中我应该读的那一章;-))。具体地说,我遇到了麻烦:
null
你需要使用一些其他的语言而不是常量,因为它只是一个常量。例如,simple、groovy,甚至像velocity这样的模板语言,在这些语言中创建要使用的SQL。
尝试…
<simple>
SELECT
*
FROM
widgets
WHERE
widget_name = '${body}'
</simple>
在http://camel.apache.org/languages可以看到支持的语言吗
我正在研究spring MVC,并使用Apache camel来集成外部服务。我想使用Apache Camel route进行Webservice调用。 就像我的本地REST服务(http://localhostsmiliex.xx:8080/users)从外部REST服务获取数据(http://xxx:000/users)并希望通过路由获取外部数据。 哪个Apache组件适合Jetty或prod
我的骆驼上下文文件如下所示: 我在应用程序中的各种不同endpoint之间有几条其他路由,它们需要重新传递配置,并且按照预期的方式运行。但是,这个特定的路由类型(从文件到队列)似乎并不遵循我配置的任何重新传递策略。当我关闭ActiveMQ代理时,路由会尝试每6秒重新传递一次文件。: 10:54:17,088 WARN c_demo%5GenericFileOnCompletion 105-org.
我想建模一个接受包含xml消息的tcp请求的Apache Camel路由。 每个消息可能导致大量的响应,这些响应应该在传入的套接字上发回。我在同步模式下使用了camel-netty组件,它适用于单个消息。但是有可能在套接字上发回多条消息吗?基本上是回归前的分裂。 在我的例子中,异常是IllegalArgument,说明endpoint不支持ArrayList作为有效负载。 干杯。
我正在将CSV文件输入集成到一个更大的系统中,我想对其进行设置,以便将CSV中未正确解析的各行(由)发送到医院队列,并将所有其他工作行转换为一个对象并聚合到一个列表中。但是,我很难将
我在MyRouteBuilder中有一条骆驼路线。正在使用ActiveMQ消息的java文件: 我写了一个测试用例如下: 当我运行单元测试用例时,我得到了这个奇怪的错误: 看到这些信息,我尤其感到困惑: 和 虽然我有一个正确的队列名称,但为什么队列显示为?还有,为什么代理url? 我想运行这个单元测试用例,以便它在所有环境中正常运行,如:本地、DIT、SIT、PROD等。因此,我不能负担的经纪人u
我使用部署在ActiveMQ服务内部的Apache Camel模块。 假设我使用Spring DSL并且在文件(简化版)中有路由定义(实现为): 接下来,我在其他XML文件(简化)中配置了骆驼上下文: 我希望使用IoC术语将来自的共享路由(ID=)声明为每个依赖项的实例,因此来自单个骆驼上下文(ID=、、)的每条路由都应该使用该共享路由的自己的实例(ID=),具有单独的内部状态和bean实例等。