Apache camel 使用camel和shutdown下载特定文件

我是否可以使用camel从sftp服务器下载特定的文件列表,然后关闭服务? 我知道这应该是一个常见的问题,但如果不等待上下文停止,我就不知道如何做 在某种程度上,camel可以确保数据完整性?camel ftp组件只能轮询目录。 您可以使用maxMessagesPerPoll和fileName的组合,如 from("ftp://.../xyz?maxMessagesPerPoll=x&fileName=y"); 也来看看 link有一些关于关机的例子。我想你可以使用直接路由和模板来做类

Apache camel 在定制Camel组件中使用apachecamel Simple

我正在创建自己的自定义组件来执行各种操作。我想知道什么是能够在我的uri中评估Simple的最佳方法,确切地说是在剩余的和选项中。这样我可以提供更多的灵活性。我已经看过了,但我不确定如何将评估集成到我的java代码中 提前谢谢 您可以看到文件组件如何使用简单/文件语言作为文件名选项 请参阅这些方法/类的源代码 org.apache.camel.component.file.GenericFileEndpoint#setFileName org.apache.camel.component.fi

Apache camel csv文件到SQL路由的性能问题和优化

对骆驼来说很陌生,但到目前为止很有趣 我使用它来处理FTP:d到特定目录的csv文件,解析它们,然后将数据放在相关的MySql db表中(都在同一台主机上) 我有一个简单的CamelContext,其中包含4个路由,每个路由处理不同的文件类型,并将解析的数据放在其关联的表中。这些文件中的许多文件每15分钟就会出现在FTP目录中(时钟为15、30、45、00分钟) camel上下文注册表只有一个条目,即数据源(org.mariadb.jdbc.MySQLDataSource提供的一个简单的Mysq

Apache camel 带驼峰的activemq:跨所有服务器的速率限制与跨一个服务器的速率限制

我正在研究ActiveMQ,尤其是使用Camel将其集成到我的java应用程序中 我们的体系结构涉及跨多个多线程虚拟机对作业进行排队。我特别需要两种利率限制: 每个vm每个时间段(所有线程) 每个时间段每个所有虚拟机 有没有办法在camel中指定这些,或者所有的费率限制都是在每个消费者的基础上实施的?在的帮助下,我认为您可以设置每个路线的费率限制。由于交换信息不是跨驼峰路线共享的,我认为它不能适用于所有虚拟机 实现此功能并满足要求(我可以想象)的唯一方法是使用另一个进程来监视队列。每隔一段时

Apache camel 在camel/servicemix中对文件和ftp/sftp端点进行集群

我有一个场景,当在不同的框中运行两个service mix实例时,我想了解和学习这个场景。每个实例都有一个相同的程序,该程序将从ftp端点获取一个文件。他们的行为会怎样 两个节点都拾取文件,还是只有一个节点拾取文件。在这种情况下,我们不会在读取后删除文件或将文件移动到任何其他位置,并且文件会保留更长的时间 我还想知道是否有任何负载平衡解决方案可用于此场景,可以从Camel为入站端点(如文件和ftp/sftp)配置。Apache ServiceMix没有此类功能 fabric8具有现成的Camel

Apache camel 如何使用camel recipentList

我只是试着用RecipentList让骆驼路线工作。但首先是一个问题:两者之间的区别是什么 多播/RecipentList(两者都没有并行处理) 多个“到” ? 在我的例子中,我希望对一些路由进行并行处理。目前都使用多个 在for循环中添加“to”: RouteDefinition someRoute = createSomeRout(fromPart, id); \\ method for (String pcrfTarget : cepConfig.pcrfCepTargets()) {

Apache camel 我可以根据条件暂停或恢复路由吗?

我希望能够基于条件以编程方式控制路由,但我找不到一种方法。 我不想像ProcessorDefinition.stop()中那样停止路由流。 我试图创建一个新的RoutePolicy,但没有任何运气 public class ProjectStateRoutePolicy extends RoutePolicySupport { // this would be a check to an outside service private boolean shouldStartRo

Apache camel fileName以检索多个文件名

如何让apache camel使用文件组件上的fileName获取多个文件。这是我的路线: sftp://ftpserver:22/?username=blah&password=blah&stepwise=false&useList=false&ignoreFileNotFoundOrPermissionError=true&fileName=${file:onlyname.noext}.txt&delete=true&doneFileName=done”) ftp服务器上的文件有1.txt,

Apache camel 由于存在多个Joda Time版本,Karaf无法根据ActiveMQ功能解析捆绑包

我的bundle在Joda Time 2.x上有一个Transactive bundle依赖项,并通过Karaf(3.0.3)功能文件进行部署。在我将依赖项添加到Karaf提供的activemq代理(5.11.1)和activemq camel功能之前,它的部署还不错。我的包现在无法解析,因为找到了指向包“org.joda.time”的两条路径。一个是我所依赖的版本2.7,另一个是版本1.6,它是ActiveMQ功能的可传递依赖项: Chain 1: ch.vivates.ams.pep [

Apache camel ApacheCamel为exchange设置了任何关闭挂钩

我正在使用ApacheCamel,并试图找到一种方法,在启动关机(上下文停止)时,如何以我的方式“完成”运行Exchange 例如,当我有一个简单的servlet端点处理任何HTTP请求时,我想截获shutdown并自己完成exchange—比如发送一些带有“Hey the application is stopped(应用程序正在停止)”的自定义HTTP响应 我阅读并研究了ShutdownStrategy、RoutePolicy的代码,但仍然找不到一种方法可以潜入真正的处理(进入exchang

Apache camel camel文件组件是否从两个不同的位置读取文件?

驼峰文件组件是否支持以下配置 有两个可用的输入文件位置: 例如 D://input1/ C://input2/ 驼峰文件组件应尝试从(D://input1/)位置读取(如果文件可用) 如果文件在(D://input1/)位置不可用,那么它应该从第二个输入文件位置读取。不,这在单个文件使用者上不受支持,您必须为此创建两个路由。然后,您可以使用direct组件将路由链接到公共/共享路由 from("D://input1").to("direct:shared"); from("C://input2"

Apache camel 在Servicemix上升级Camel

我有一个servicemix版本:4.3.1-fuse-03.01和Camel 2.6.0-fuse-03-01。我想将Camel升级到2.8.0版。在不升级整个Servicemix的情况下实现这一点有什么简单而安全的方法吗 我在serviceMix 7.0.0.M2中升级了camel,如下所示。与ServiceMix版本相关的命令可能会有所不同 功能:功能:回购清单 您将获得可用的repo URL列表作为示例 标准-4.0.5| mvn:org.apache.karaf.features/st

Apache camel 启动包时发生Apache驼峰错误

学习ApacheCamel- 正在尝试在jboss-fuse-6.1.0.redhat-379上部署应用程序 POM如下所示 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.

Apache camel 让Camel处理各种URI类型

我想编写一个Camel路由,该路由进入URI(可以是http、ftp、file等),然后获取数据并将其存储在本地文件中 此URI字符串可以是,例如: “” "file://tmp/example.txt" “jms:queue:dataInputQueue” 基于此字符串,应使用正确的Camel组件访问数据。类似于Java中的case/switch: (1) 接收URI(来自URI=“vm:incomingUri”) (2) 选择“右”驼峰组件 switch(URI) case HTTP:

Apache camel 使用Camel从OracleDB读取表

您好,我是Service mix新手。有人能告诉我如何从oracle Db读取表并将该表发布到本地文件中的正确方向吗?(这里我只想使用blueprint.XML内容,我可以直接将其部署到Service mix部署文件夹中)。下面是一个示例: public class JdbcReadFromOracleRoute extends RouteBuilder { @Override public void configure() throws Exception {

Apache camel 为JBoss Fuse编写适配器

我想使用JBoss Fuse将web服务调用转换为Modbus/TCP消息(反之亦然)。这个协议似乎不存在第三方适配器,所以我想我必须自己编写它。这是怎么做到的 目前,我最好的猜测是JBoss Fuse将web服务调用的SOAP文件存储为一个文件,并将其传递给ApacheCamel。所以我要做的就是为这些文件格式编写一个转换器。这是正确的吗?你的假设是不正确的。根据您用于web服务调用的组件,底层技术将有所不同。例如,使用CXF组件调用web服务意味着CXF进行服务交互。而且我从未见过SOAP文

Apache camel 多次使用Camel ConsumerTemplate下载该文件

我尝试使用CamelConsumerTemplate多次下载同一文件。它没有被下载多次,但我在使用骆驼路线时完成了下载。 我想使用ConsumerTemplate多次下载文件以下是我正在尝试使用ConsumerTemplate的代码: import org.apache.camel.CamelContext; import org.apache.camel.ConsumerTemplate; import org.apache.camel.Exchange; import org.apache.

Apache camel 为Camel文件使用者设置动态延迟

我想为我的camel文件使用者设置延迟。我正在使用blueprint DSL。不知道如何动态设置它 我希望从属性文件中提取值“1000”。阅读有关使用属性占位符的文档:它介绍了如何做到这一点。通过添加正确的属性占位符标记{{delay}使其正常工作 使用$simple{delay}会引发编译时错误。当我尝试使用simple时,它会引发编译时错误。参数delay需要一个数值uri=“file:{{PFlowDir}}{{PFlowIn_AEROW}}?delay=simple{timeout}

Apache camel 驼峰-在异常时停止处理路由

我有一个处理hl7消息的驼峰路由。处理成功后,我希望将其传递给另一个端点b以进行进一步处理 但是,如果processHL7中发生任何异常,我有一个catch块来执行一些处理。我想在进入doCatch和遭遇端时停止处理,但这并没有发生。无论发生什么,流都将到达端点b。当我进入doCatch街区时,如何停车 from("direct:a") .doTry() .to("bean:processHL7?method=process") .doCatch(H

Apache camel 从Talend cSetHeader中的XPath表达式获取字符串结果

我被一些本该微不足道的事情难住了 我有一个xml文档,它是使用XPath进行拆分的,XPath工作得很好,但是我想用拆分文档中的值设置标题 我有一个cSetHeader组件,其语言设置为XPath和有效的XPath。但是,当我需要一个字符串时,它会以NodeList对象的形式返回值 如果我使用返回字符串的XPath表达式,它会给出一个异常,因为它无法转换为NodeList 在Talend中,如何配置XPath表达式以返回字符串。如果您直接编写camel,似乎还可以,因为有一个参数,但我看不出在T

Apache camel Camel 2.21.0-如何处理流式处理异常

我想在异常中记录一个错误,然后在下一个记录/拆分中继续,但它不起作用 我厌倦了onexceptan(),doTry()DSL,但它不工作,转到ErrorHandler onException(IOException.class) .handled(true).process(exchange -> log.error("error!!")); from("file:" + rootDir + "/" + account + "/inbox/?move=.done") .unmarshal

Apache camel JsonPath语言中的Camel简单表达式?

我试图在jsonpath中使用简单的表达式。我尝试在jsonpath中使用内置运算符,如“contains”、“starts with”,与头值进行比较 我尝试过使用contains操作符,但是start with操作符失败了 什么有效- .jsonpath("$.configs[?(@.mask contains '${header.mask}')]") 什么不起作用 .jsonpath("$.configs[?(@.mask starts with '${header.mask}')]"

Apache camel 向上一个rest路由发送响应

我有下面的骆驼路线,目前工作良好。 rest url hit正在调用重置路由 重置路由工作正常,但如何向rest服务发送正确响应 我要发送到Rest URL的响应是发送到MQService的消息的计数,如果路由进入doCatch,我希望以字符串形式发送“ERROR” 目前我还不清楚,因为在重置路径的开始时,它正在调用JavaBean,并获取正在并行拆分和处理的对象列表。 如何计算成功发送到MQ的消息数? 分裂的终点在哪里? 拆分后我是否应该使用事务进行后期处理 @Override public

Apache camel 在Camel 2.24中完成文件拆分后关闭所有聚合组

我有一个用例,可以逐行拆分文件,并根据某个键进行聚合,一旦文件中的所有记录完成拆分,就释放所有聚合的组。记录计数将是未知的,我想在camel 2.24版本中这样做 示例文件布局: { "key": "key1", "rec": "rec1" }, { "key": "key2", "rec": "rec2" }, { "key&

Apache camel ApacheCamel POJO Bean处理器是单例还是原型?

我使用Camel的springdsl来构建路由,并使用pojobean作为处理器 起初,我认为: <bean ref="myPojoBeanProcessor"/> 我想知道,如果采用后一种方法,bean对象是否会随每个请求一起实例化,或者bean实例是否会被缓存并用作单例(如spring中的默认值) 我无法在camel文档或谷歌上找到答案。有人知道这个问题的答案吗?你为什么不试试呢:) Camel将使用默认的无参数构造函数一次性创建一个实例,并缓存该实例,例如它的单例作用域。以下

Apache camel Apache Camel的替代方案是什么

如果我正在评估针对轻量级EAI框架的ApacheCamel替代方案,我应该在评估中包括什么 开源或开源都可以 它不必是Java,但必须在Windows上运行 MS替代品还可以 我不想要一个完整的ESB 它应该支持文件、soapweb服务和REST端点。OData的支持将是一种奖励 您尝试过Java吗?您可以参考比较Camel、Spring集成和其他EAI框架 对于.net,有和。我认为大众运输和ESB.net更像是一个通用的消息传递框架,不能完全与Apache Camel相比。

Apache camel apache camel如何从sql组件获取头属性

我是Apache Camel的新手,我开始编写一个应用程序,从一个数据库获取数据并将其插入另一个数据库。我正在使用sql组件,并试图找出如何使用SpringDSL从消息头中获取CamelSqlUpdateCount、CamelSqlRowCount和CamelSqlQuery 我知道我可以使用这个…获取数据中的属性 <log message="Processing product ${body[product_id]}"/> 下面是我的POM的摘录,展示了我正在使用的jdbc驱动程

Apache camel 简单表达式语言:如何在ApacheCamel2.10中获取${routeId}

如何访问Apache Camel 2.10中的“routeId” 我从camel 2.11中看到该属性存在 从 还有其他简单的破解方法吗?没有,您需要编写一段代码来获取路由id。您可以查看Camel 2.11以后版本的源代码,了解Camel在该功能中是如何实现的 ${routeId} String Camel 2.11: Returns the id of the current route the Exchange is being routed.

Apache camel Camel模块间协调-依赖

我的问题是我有一个routeBuilder,它根据url模式向不同的模块(如a、B、D)进行路由,如下所示(customProcessor将ARestURN、BRestURN等添加到标头,标头是逗号分隔的url模式,将与标头中的CamelHttpUri匹配,以路由到正确的模块) 我现在的问题是,我需要为一个RESTURL请求提供服务,该请求要求我访问AUrl和BUrl并聚合结果,然后响应请求。我如何实现这一点 我想写一些如下的东西 from("servlet:///?matchOnUriPref

Apache camel 磅符号作为驼色信息出现?

我在骆驼路线的邮件中遇到英镑符号的问题, pound符号在我的camel rest端点上的json请求中出现时,会被转换为“?”,同样会显示在日志中 我尝试了以下方法来解决这个问题,将convertBodyTo标记字符集设置为utf-8,但没有成功 使用的驼峰版本是2.10。 地点是:en_US 路线如下: 您需要知道客户端在发布JSON时使用的编码。浏览器应向您发送内容类型标题字段中的编码信息 如果磅号显示为单个问号,则表示流具有单字节编码。如果它是多字节的,然后用单字节编码读取,它将显示为

Apache camel ServiceMix中的Activiti集成

我在ServiceMix中找不到任何更改Activiti 5.16.1数据库参数的线索 源示例是ServiceMix 5.1.0中的examples/activiti/activiti camel 默认情况下,Activiti使用h2数据库。我希望它与Postgresql一起工作 首先,我安装了PostgreSQL JDBC驱动程序OSGi bundle 9.1.901.jdbc4_1 其次,根据Activiti的用户指南,我在示例classpath resources和resources/OS

Apache camel 使用Java为apache camel中的自定义组件配置使用者

假设我有一个Jetty组件comp1和自定义组件comp2,其中comp1生成一个交换,comp2使用它。 如何在comp2的消费者中交换Jetty组件 到目前为止,我观察到我们可以在consumer'spoll()方法中获得它,如下所示- SomeEndpoint=camelContext.getEndpoint(“someURI”,SomeEndpoint.class) 但是在someURI和someEndpoint.class上配置什么呢 如果我提到someURI=“jetty:…”,那么

Apache camel 对Bean或模型类的Camel Restlet响应

我需要从另一个restlet到类对象的camel restlet。但是我越来越 org.apache.camel.converter.stream.CachedOutputStream$WrappedInputStream@12a7889 在生产过程中 调用camel: Future<Object> responseFuture = producer.asyncRequestBody("direct:fablertcatalogredirect", k1);

Apache camel Apache Camel SQL组件未关闭结果集?

我正在使用camelsql组件对oracledb运行select查询。war文件部署在Jboss EAP 6.1上。在配置下的配置文件中,我将track语句设置为true(即true)。因此Jboss会在连接返回池时检查结果集是否关闭 我正在按如下方式配置sql组件: //datasource is injected here @Resource(mappedName = "java:/jdbc/OracleDS") private DataSource dataSource; from("a

Apache camel CronScheduledOutPolicy未在指定时间启动路由

我创建了一个cronscheduledulepolicy,每天下午15:30启动并启动我的路由,从某个网站获取xml并将其存储在数据库中,如下所示 CronScheduledRoutePolicy startPolicy = new CronScheduledRoutePolicy(); startPolicy.setRouteStartTime("0 30 15 * * ?"); from("direct:quatzRoute") .routePolicy(startPolicy)

Apache camel apachecamel-JSONPath表达式来获取多个值

在驼峰路由中,需要通过rest客户端从传入的json数据中读取值。使用JsonPath解析并从中获取值 用于获取json数据的表达式适用于一个值,而不适用于另一个值 从rest客户端传入的JSON数据: [{“var1”:10,“var2”:20}] 骆驼路由中使用的JSONPath表达式: <setHeader headerName="data1"> <jsonpath suppressException

Apache camel Apache Camel未及时从SQS获取消息

我们有一个实现,其中消息被放置在AWS SQS队列上,并被AWS使用。我们使用concurrentConsumers=1。我们正在记录由org.apache.camel.component.aws.sqs.SqsConsumer完成的队列轮询 测试包括(从远程系统)向SQS发送消息,然后记录消息在队列中的时间。在Camel端,我们在SqsConsumer类上有跟踪日志记录,我们可以看到何时轮询队列以及何时使用消息 如果我们每10秒在队列中放置一条消息,大多数情况下,Camel会在1-2秒内拾取消

Apache camel camel cxf中只接受第一个参数

我在camel.xml中将cxf服务器定义为: <cxf:rsServer id="rsServer" address="http://0.0.0.0:9090/orderservice" serviceClass="my.pakcage.myClass" /> 在Java DSL中,我有骆驼路线: from("rsServer?bindingStyle=Default").log("rsServerlogging: ${body}") .recip

Apache camel 如何正确解决Fuse(camel)bundle中Tika的可传递依赖关系?

我试图在Fuse(6.3)项目中实现Tika功能。在最新版本1.16中,Tika提供了带有解析器的Osgi包。我无法实现正确的osgi方式,将Tika包括在我的项目中。任何关于如何创建依赖项配置和使用osgi捆绑包的提示?JBoss Fuse 6.3中不包含Camel Tika组件。Tika 1.16版本包含在camel Tika组件中,包含在camel 2.20.0-SNAPSHOT中。是否使用camel Tika组件?

Apache camel ApacheCamel-如何将查询参数传递到velocity模板

我在SpringDSL中描述了驼峰(2.16.4)路由,如下所示 ... <from uri="restlet:http://localhost:8081/service_url?restletMethod=get"/> <to uri="velocity:{{templates.uri}}/stub-answer.vm{{velocity.opts}}"/> ... 但这是一个ducktape,我相信有更直接的forvard方法按名称获取请求参数(可能使用xml中的一

Apache camel 使用列表中的objectFactory创建对象

我正在使用ApacheCamel。我想创建类项目的对象(项目有一个项目列表) 这是我的路线: <route> <from uri="mybatis:getAllItems?statementType=SelectList&amp;?consumer.useIterator=false> <to uri="bean:objectFactory?method=createItems"/>

Apache camel 将消息回滚到死信队列-Apache Camel

我已经设置了ApacheCamel,在其中我使用来自一个队列的消息并对其执行某种操作,然后将其传输到另一个队列 现在,如果出现异常,那么我希望它应该回滚,然后在6次尝试将其发送到死信队列后,当前回滚发生5-6次,但我的消息不会传输到死信队列 发生了什么--> 队列1-->(消耗)--->操作(引发异常)--->回滚-->再次队列1-->(消耗)-->操作(引发异常)--->回滚-->。。。这种情况发生5-6次,然后我的信息就丢失了 我不知道我的消息要去哪里以及它丢失的原因,从我的活动MQ GUI

Apache camel 如何将OSGI.enroute与apache karaf集成?

我发现OSGI.enroute正在使用bndtools,我假设它是一个用于 An exported package is a package with is visible to other bundles An imported package is a package which is imported by a bundle exporting the package. A private package is a package which is not visible to other

Apache camel ApacheCamel:是否使用';mock:direct:foo';URI使用';直接:foo';乌里?

具有“mock:direct:foo”URI的MockEndpoint是否正确地模拟了具有“direct:foo”URI的端点? 这有什么意义吗?在阅读了《骆驼手册》中的食谱之后,我明白了这一点 mock:direct:foo充当direct:foo的mock,但与我们模拟一些常规java对象的意义不同 说明: 有一个路由将消息发送到uri为direct:foo的端点 一旦我们写 public String isMockEndpoints() { return "*"; } 在我们的测试课上

Apache camel 是否可以跳过对HAPI中某些字段的分析?

我使用ApacheCamel、Mina2和HAPI来接收HL7v2消息。我注意到解组和创建消息对象需要花费很多时间。当我有更大的信息时,这个时间会增加 我的信息有大约120个OBX段,我只使用OBX 3和OBX 5字段。我在OBX 5之后测试了手动删除字段,发现性能有所改善。有没有办法告诉HAPI不要在OBX 5之后解析任何字段?您可以扩展ca.uhn.hl7v2.parser.PipeParser并重写段解析方法 @Override public void parse(Segment dest

Apache camel Camel-ActiveMQ对空队列作出反应

我有一个ActiveMQ队列,由来自两个不同进程的消息填充。第一个向队列提供实际消息,另一个每隔几秒钟向队列添加“keepAlive”类型的消息。来自该队列的消息由具有camel netty端点的单个进程使用 只有在给定的时间范围内没有其他消息发送时,才能发送“keepAlive”消息。这就是为什么我想修改“keepAlive”进程,使其仅在队列中没有其他消息满足某些条件时(例如,其中一个头值等于某个值)填充队列 仅使用XML路由和流程定义(无需自定义代码实现)是否可以实现这一点?因此您希望监视

  1    2   3   4   5   6  ... 下一页 最后一页 共 63 页