我想知道是否有一种方法可以让Camel做我需要的事情,如下所示:
定期从某个源(比如文件)读取数据,对其进行处理并将其写入其他位置
我想出了除“周期性”部分之外的所有方法。我知道如何使用石英或定时器触发路由。但是当我使用这些部件时,部件已经被取下,所以我不能再改变身体了
有什么建议吗?您可以使用定时器/石英启动,然后使用a或a
您也可以使用计划路线策略
//using timer/pollEnrich to populate the body with the polling results
我想将大量小文件移动到HDFS序列文件。我有两种选择:
使用水槽。Flume没有内置的文件源,这需要自定义源来推送文件
使用apachecamel文件进行hdfs路由
尽管上述两种方法都能达到目的,但在选择一种方法之前,我想权衡一下其他可用的方法。我特别感兴趣的是一种更具可配置性的解决方案,它会导致更少的代码可维护性。看起来像是用Camel编写的几行代码。i、 e.从(“文件:/…”)到(“hdfs:…”再加上一些初始化和项目设置
不确定使用任何方法都能轻松多少(代码行数更少)
如果Camel中
通过谷歌搜索Camel文档,我还没有找到在javadsl中的Camel多播语句中启动块的方法
例如,我想象的是这样的:
from("direct:dummy")
.multicast()
.begin().setHeader("A","toto").process(doSomething).end()
.begin().setHeader("A","titi").process(doSomethingElse).end()
;
假设的“begin()”将
我想创建一个路由器如下
我们的Apache Camel是否实现了上述场景
如何使用Apache Camel实现上述场景
注意:我使用的是ApacheCamel 2.13.0版本
谢谢……您可以利用来做这些事情
但是,您无法对轮询使用者(如文件夹等)真正执行“动态自”。如果您希望开始侦听http流量(而不仅仅是轮询URL),也是如此
您可以在javabean中启动新的Camel路由,或者针对此类场景启动类似的路由
我是阿帕奇骆驼队的新手。我想从远程文件位置(即共享位置路径)选择一个文件
将远程计算机共享位置路径映射为网络驱动器并使用文件组件,如下所示
<camel:route>
<camel:from uri="file:{{config.fileloc}}?fileName={{filename}}.txt"/>
<to uri="activemq:queue:{{activ
在骆驼路线中使用recipientList后,在选项中。当时,我想使用到(“xy”)将其进一步路由到另一个目的地
JavaIDE中的语法突出显示向我表明这是不可能的
如果我在接收者列表之后加上结束,则所有内容都会再次匹配
需要吗?我在文档/网络中找不到任何显示s/t类似的示例
.choice()
.when(aPredicate)
.setHeader(Exchange.FILE_NAME).simple("st")
.recipientList(getAValue
我很难让我的驼峰路线成功地将消息发布到现有的RESTful web服务。我已经尝试了camelcxf包中的所有示例,但没有一个生成web服务调用(它们是消费者)。我很想找到一个这样的工作示例,这样我就可以逐步完成CxfRsProducer的执行,希望能够发现为什么我的路由没有正确地发布到web服务
以下是我的RouteBuilder配置:
public void configure()
{
//errorHandler(deadLetterChannel(String.format("f
我正在使用camel rout来使用收件箱文件夹中的电子邮件。
但我想过滤掉自动回复的电子邮件,比如离开办公室等
我看到有一个选项,可以使用optionunseen=true只处理未读邮件
我用于使用电子邮件的URI如下所示:
pop3://username@host?password=password;delete=true&unseen=true&consumer.delay=60000
我认为您要查找的是要添加到端点URI的searchTerm属性
如果要
我试图在CXFRS驼峰路由中创建对REST web服务调用的响应,但无论我做什么,对客户端的响应总是相同的200,而不是201。这是我的路线:
<route id="front-end">
<from uri="cxfrs:bean:myService" />
<setBody>
<constant>Will do...</constant>
</setBody>
<se
在我的应用程序中,我有一个通用的驼峰路线,如下所示
from("direct:something").to("direct:outgoing")
然后在我的代码中动态部署另一条路由:
from("direct:outgoing").process(processor)
当从路由1流向路由2时,将创建一个新的交换机。有没有一种惯用的方式将两者联系起来?我是否应该在发送前在第一条路由上设置EXCHANGE.Correlation\u ID头?这肯定应该在一个交换上处理。运行此测试,您将看到相同的
我在本地机器的Servicemix中部署了驼峰路由,并安装了hawtio功能。我可以在hawtiourl中查看图表、源代码、osgi包、跟踪和调试
http://localhost:8181/hawtio/
用户名和密码为smx/smx或karaf/karaf
但是,当我在另一个网络中运行的虚拟机中部署相同的路由并在hawtio中进行检查时,在检查camel上下文时会显示nomodificationlowerError
有人能帮我解决这个问题吗?你能提供更多的细节,关于使用的版本,也许还有一些
我用ApacheCamel开发了一个文件传输路由。我想将Jetty服务器嵌入到这个项目中,这样我就可以在不将其部署到其他服务器的情况下保持服务的运行。如果有人能写一些代码,这将非常有帮助
谢谢。您有两种选择,它们非常受欢迎:
使用maven camel:run插件,您只需在pom文件中启用它并运行命令。(我不太确定他们是否在内部使用Jetty,但它是有效的)
现在,使用web门户创建项目非常容易
Jetty还有一个maven插件,即mvn Jetty:run
您应该使用并声明一个消费者,它将自动
我目前正在尝试将驼峰路线部署到我的karaf容器(在Spring DSL中):
该路由的捆绑包未安装,但仍处于“GracePeriod”状态。我修复了所有缺失的依赖项(我想是的),但我不理解这条消息:
捆251
----------状态:GracePeriod蓝图2016年11月23日下午2:08缺少依赖项:
(&(objectClass=org.apache.aries.blueprint.NamespaceHandler)(osgi.service.blueprint.namespace
我正试图实现对JMS消息的一次顺序处理(从Oracle高级队列中使用,但这不重要)
出于测试目的,我创建了以下路线:
<route id="inputAqTest12">
<from id="_fromAqTest12" uri="aqTest12:queue:QUEPOSTDATA?transacted=true"/>
<transacted id="_transactedAqTest12"/>
<
我使用ApacheCamel来帮助捕获由第三方软件包发出的消息数据。在这个特定的例子中,我只需要捕获软件产生的内容,另一端没有接收器(实际上没有“端”可去)
因此,我尝试设置一个只包含“from”端点而不包含“to”端点的路由。显然,这是不正确的用法,因为我收到了以下异常:
[2018-08-15 11:08:03.205] ERROR: string.Launcher:191 - Exception
org.apache.camel.FailedToCreateRouteException:
以下是我努力实现的目标:
从源目录中选择一个文件
将该文件复制到目标中
目录
将消息发布到weblogic队列,其中
不同的应用程序选择文件名并从
目标目录
问题是每次重新启动weblogic服务器时(由于代码部署),驼峰JMS路由都会挂起并停止工作,直到驼峰路由/Servicemix服务器重新启动
下面是我的骆驼路线代码:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframewo
我想问一下,是否有一个apachecamel模块,我可以用来构建一个报告,然后导出为PDF
报告将包含一些文本和条形码
这是可以通过骆驼完成的吗
谢谢Apache Camel有一个和一个。PDF组件使用,条形码组件在引擎盖下使用。两者都是功能强大的库,根据您的需求有多复杂,它们可能会工作(或不工作)。像往常一样涉及到一些层次的管道:)Apache Camel有一个和一个。PDF组件使用,条形码组件在引擎盖下使用。两者都是功能强大的库,根据您的需求有多复杂,它们可能会工作(或不工作)。像往常一样涉
我有一个调用web服务的驼峰路由,该服务需要的参数之一是包含值列表的URL参数,即myhost/myuri?p1=foo&p1=bar中的p1
我把它放在toDURI中,因为参数值需要是动态的,即(为了简洁起见,省略了Camel参数和变量)
Camel正在将其转换为p1=%5Bfoo%2C+bar%5D(url编码的p1=[foo,bar]),后端服务不接受该转换。我无法控制这个后端服务,也不能期望它的接口在将来发生变化
有没有办法强迫Camel以我想要的方式调用后端服务,而不是将具有多个值的参
我使用的是Apache Camel 3.0,在解析文件时出现以下错误:
from("file:" + filePath)
.routeId("create-ticket")
.unmarshal(ticketCsv)
.to("jpa:Ticket")
.log("Created new ticket with id ${body.id}")
.convertBodyT
我是activeMQ/Camel的新手,请耐心等待
在驼峰路线中,我使用拆分器生成多个子路线。这些路由中的每一个都将使用一些外部API来完成某些工作,并进行轮询,直到工作完成。我有那么远
现在我需要触发最后一个操作来收集所有这些路由的结果。我将如何通过骆驼/AMQ方式实现这一点
我曾考虑在每个子路由中向AMQ队列发布一条消息,但我还没有找到一种方法,在最终骆驼路由中使用它之前,等待该队列中接收到N条消息
谢谢。如果需要从拆分器子路由收集所有结果,并在所有子路由完成后对这些结果执行某些操作,则可以
当我使用Camel REST DSL和Spring Boot将ApacheCamel版本从2.x移植到3.1.0时,我面临以下日志记录问题
我的日志记录键在application.properties中定义,即mymessage=Hello World。
当我将其用作
.log(LoggingLevel.INFO, "${properties:mymessage}") [Works in both 2.x and 3.1.0]
.log(LoggingLevel.INFO, "{{mymess
我正在部署一个由驼峰路径触发的Spring批处理作业。以下是Spring批处理配置:
@Configuration
@EnableBatchProcessing
public class JobConfig
{
...
@Bean(name = "personJob")
public Job personJob(JobCompletionNotificationListener personListener, Step personStep)
我有一条这样的路线:
onException(classOf[RuntimeException]).process(runtimeProcessor).process(doSmth).log(LoggingLevel.INFO, "new", "${exchangeId} --- ${exception.stacktrace} ")
在处理器上,我执行以下操作:
CustomException customException =new CustomException ()
exc
这可能是一个愚蠢的问题,但假设我有一条hughe的消息,我想用Camel处理。路径中的步数将如何影响内存使用?camel deep是否会为路由中的每个步骤复制我的消息负载,即使DSL步骤只读取消息,或者它是否在这里做了一些聪明的事情
对于大型消息,是否最好保持路由畅通,并在“hughe”bean中进行处理
这是一个示例路由,它执行各种操作,但不改变有效负载
from("foo:bar")
.log(..)
.setProperty(..)
.setHeader(..)
.log(
我正在使用camel ftp组件将文件上载到服务器。我随机得到下面的异常,ftp突然停止,这可能是什么问题。感谢你的指点。
我使用的camel版本是2.10.1
|Caused by: org.apache.camel.component.file.GenericFileOperationFailedException: Cannot store file: 8000211d-5f40-4bac-920a-a2e5f2575870.gpg
| at org.apache.camel.comp
在我处理ftp文件的驼峰路线中,我正在努力进行类型转换。我的路线如下(在春季DSL中):
但是,这会产生以下类型转换问题:
org.apache.camel.InvalidPayloadException: No body available of type: java.io.File but has value: RemoteFile[test.zip] of type: org.apache.camel.component.file.remote.RemoteFile on: test.zi
正在获取当前异常,不确定如何解决它。有什么想法吗?非常感谢
org.apache.camel.RuntimeCamelException: org.quartz.SchedulerException: Trigger's related Job's name cannot be null
但是,您的定义适用于Camel 2.12.2(您使用哪个版本?)
我将您的cron表达式更改为0/5++*++*++*++*?++*,因为我不想等待太长时间来执行第一个作业。。。有关Quartz的cro
我试图在蓝图中添加bean
添加了CXF名称空间。但是,JBOSS保险丝显示
13:10:28,339 | INFO | NAPSHOT-thread-1 | BlueprintContainerImpl | 14 - org.apache.aries.blueprint.core - 1.0.1.redhat-60024 | Bundle camel-basic is waiting for namespace handlers [http://camel.apache.
在使用HL7 v2文件之后,我尝试将它们封送到HAPI HL7对象中。路线样本为:
from("file:C:\\routes\\in").unmarshal(new HL7DataFormat()).log("Success!");
不幸的是,我得到了一个例外:
ca.uhn.hl7v2.parser.EncodingNotSupportedException: Determine encoding for message. The following is the first 50 cha
我正在尝试构建一条路线,该路线将执行以下操作:
在中使用来自jms:sender的消息。我使用的是INOUTrequest-reply模式。JMSReplyTo=sender out
上述消息将路由到多个收件人,如中的jms:consumer1、中的jms:consumer2和中的jms:consumer3。它们都使用请求-应答模式。JMSReplyTo是按每个消费者指定的(在本例中,JMSReplyTo的顺序是jms:consumer1 out、jms:consumer2 out、jms:co
我正在尝试从属性文件读取时间延迟
已在我的属性文件中定义:
time_inMilis=15000
我已将骆驼上下文xml配置为:
<bean id="property" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<value>file:/D
例如,ApacheActiveMQ支持驼峰路由中主题/队列等源的通配符
表明有可能递归匹配如下模式:
PRICE.STOCK.>
<plugins>
.....
<destinationPathSeparatorPlugin pathSeparator="_" />
</plugins>
火柴
PRICE.STOCK.FR.SOUTH
PRICE.STOCK.FR
PRICE.STOCK.UK.NORTH.MANCHESTER
等等
我有以下路线:
<route id="import">
<from uri="file:/var/inputfolder?delete=true"/>
<log message="Importing ${file:name} started."/>
<setProperty pro
在JUnit测试中使用Saxon 9.5.1-4作为XSLT转换引擎,我看到以下警告:
警告:样式表模块文件:/C:/svn/prime/code/trunk/xslt/target/main/classes/xsl/common/to common result。xsl包含或导入多次。这是允许的,但可能会导致错误或意外行为
但是,当它在ApacheCamel 2.13.1下运行时,它会在发出警告后失败
15:11:29,714 WARN [org.apache.camel.builder.x
标签: Apache Camel
apache-karafblueprint-osgiapache-servicemixaries
我有一个简单的Camel应用程序包,它将部署在apacheservicemix 6.1下的karaf3.0.5中。配置文件被放置在etc/目录中(假设它被命名为wf.cfg)。我希望在我的应用程序包中具有动态配置更改功能。因此,只要在wf.cfg中更改了某些内容,就可以立即将其绑定。为此,我在我的
blueprint.xml
<cm:property-placeholder persistent-id="wf"
update-strategy="reload">
&l
最近,我遇到了一个关于Camel MyBatis一对多插入的复杂问题。
我的情况是,我尝试通过存储过程将一组项插入到两个SQLServer表中。
项目数据结构为一对多,这意味着一个项目包括其他项目的另一个列表,如下所示:
Class MainItem{
String id;
String name;
....
List<SubItem> subItems;
}
Class SubItem {
String error;
String desc;
Stri
在下面的示例中(取自),Jetty HTTP组件用于接收HTTP消息。这是否意味着参与者启动了一个新的Jetty服务器
import akka.camel.{ CamelMessage, Consumer }
class MyEndpoint extends Consumer {
def endpointUri = "jetty:http://localhost:8877/example"
def receive = {
case msg: CamelMessage =>
someobody是否有将松弛通道连接到路线的想法?
可以用JavaDSL实现吗
是否有人提供了该组件的配置示例?Apache Come似乎支持使用电子邮件向slack发送消息
有关详细信息,请查看正式的Apache camel文档。在项目中添加camel slack依赖项后,组件将自动在camel上下文中注册。您可以从那里获取SlackComponent,并在扩展RouteBuilder中进行配置:
public void configure() throws Exception {
我正在使用talend ESB,并希望使用smooks将EDI消息解析为XML&我在正文中得到null。代码如下所示
from(
"file://D:/cimt/InvoiceEDI_Mapping/" + "?noop=true"
+ "&autoCreate=true" + "&flatten=false"
+ "&fileName=InDev_EDI_Msg.txt" + "&bufferSize=128")
.routeId("TestSm
我有以下路径,我只想在完成数据库插入任务后登录
from("file:src/data?noop=true").unmarshal(jaxb)
.bean(SetQueryParameterToMap.class)
.to("sql:{{insertData}}?dataSource=myDataSource")
.onCompletion().log(" Inserted time " + new Date()).end();
我正在从camel metrics向AWS CloudWatch发送度量数据。在这样做的同时,一些驼峰路线(收集指标,处理错误)正在扭曲我的数据
因此,我希望这些路线仍然有效,但被排除在骆驼指标之外。是否有这样做的选项/属性?我没有发现任何与此相关的东西
我的另一个猜测是Camel Metrics有一个拦截器SpringBean,它收集数据并保存到JMX。如果我可以重写该方法并手动排除不必要的路由,那也可以。那么有没有这样的拦截器,它叫什么名字
编辑:
我找到了MetricsRoutePolic
我想使用Dozer Mapping tool for Camel,它可以很好地与SpringXML配合使用
我更喜欢使用JavaDSL,我想以某种方式让向导弹出,但我没有一个组件工具箱来拖放它
有什么建议吗
谢谢大家! Fuse工具中的数据转换编辑器与图形化驼峰编辑器(Spring或Blueprint DSL)绑定在一起。不幸的是,没有办法在JavaDSL上启用它
您可以在这里提出一个新问题(增强),让开发人员了解它;-) Thomas,它能在XML和JavaDSL环境中工作吗?我可以为tran
javadoc的Message.getBody()方法说
请注意,如果消息体是基于流的,那么
那么如何检查主体是否基于流?支票是这样的吗
Object body = exchange.getIn().getBody();
if (body instanceof InputStream) {
不适用于,比如说,文件。我正在编写一个通用代码,它应该为传入的流做某些事情,并保持非流对象不变,因此我谨慎地调用
Object body = exchange.getIn().getBody(InputSt
注意:问题是关于独立使用未发布的Camel 3.0.0-M2版本的主类行为,该版本在Camel 2.x上对独立模式有许多增强-下面的代码不适用于Camel 2.x
问题:我注意到[1]中描述的对属性组件的修改不会影响注入bean的配置属性。在我的例子中,我想将pc的environmentVariableMode设置为覆盖回退是默认设置
当覆盖在路由上有效时,bean被注入了原始属性值
application.properties中的属性hi设置为Hello,环境变量hi设置为Huhu,当envi
在ApacheCamel中,在几乎所有的用例中,我们都将使用OneException(SomeException.class).handled(true)。
是否有任何用例需要使用onException(SomeException.class).handled(false)
如果我们使用onException(false),异常将返回给调用方,即使您可以更改处理代码中的主体(原始路由传播将停止)。但是如果您使用handled(false),那么我们可以检索Exchange对象以在调用者处获取原始
在我的一个用例中,我需要根据消息中可用的数组列表将入站json消息拆分为多个消息
例如,在下面的消息中,根据“actualData”数组列表进行拆分
{
"information": {
"name": "ObjectName",
"type": "messageType"
},
"actualData": [
{
我有一个流程,从文件中读取,转换为CSV,然后将每一行转换为对象。最后我列出了一个清单。现在我想把它分成更小的列表,并并行处理每个列表。我可以使用split()获取单个条目,但我所有使用聚合的尝试都没有得到一个列表,只有单个条目
from("file://")
.unmarshal(csvDataFormat)
.to("bean:personReader")
.split(body())
.aggregate( ??? )
.to("bean:send")
您是否在谈论组
考虑以下骆驼路线:
from("file://....?moveFailed=/failed")
.resequence(c).stream()
.throwException(new Exception());
我希望文件使用者会将处理过的文件移动到“/failed”文件夹,因为发生了异常。事实并非如此
因为StreamResequencer使用一个新线程来传递重新排序的文件(请参见stacktrace),所以异常永远不会传播到文件使用者
...
at org.apache.ca
我正在使用Camel中的javadsl创建一个路由
我希望在不创建新处理器或bean的情况下执行文本替换
我有这个:
.setHeader(MY_THING,
constant(my_template.replace("{id1}", simple("${header.subs_val}").getText())))
如果不添加“常量”,则会出现类型不匹配错误。如果我不将getText()放在simple()部分,就会得到文本不匹配的答案。当我运行我的路由时,它将{id}替换为lite
我有一个bundle激活器类和一些代码。
我需要在bundle activator类中使用@Autowired。它不起作用。
这是我的bundle Activator类
public class ProviderActivator implements BundleActivator {
@Autowired
public TestingClass testingClass;
public void start(final BundleContext bundleCo
上一页 1 2 ...
4 5 6 7 8 9 10 ...
下一页 最后一页 共 66 页