Apache camel 在骆驼中,一条路线只使用一次交换吗?

首先是我要做的基本工作 我有一个要从中读取消息的MQ 预处理XML,并在Exchange上设置属性 发出HTTP请求 处理来自http请求和初始exchange上属性的数据 将其放入出站消息队列 我一直在四处寻找,以确认每次从初始MQ读取消息时,都将创建一个新的Exchange。我还没能找到任何明确的说法,但我假设并想知道是否有人能证实或否认这一点 交换只使用一次吗?路由是否会为传入的每条消息创建新的交换 谢谢 编辑:当然,我的搭档会立即在谷歌上搜索并找到答案。是的,它是唯一的,我们在这里找到了

Apache camel Apache驼峰错误:方法进程不适用于参数

我已经编写了一个简单的路由,它将获取任何http请求并将其保存在file:output中。 保存后,将创建一个处理器,该处理器将读取所有请求 这是我的密码: import org.apache.camel.CamelContext; import org.apache.camel.Exchange; import org.apache.camel.processor.*; import org.apache.camel.builder.RouteBuilder; import org.apach

Apache camel Camel:同一Camel上下文中并行路由之间的同步

我正在开发一个camel原型,它在同一个camel上下文中使用两个起点 第一条路由使用用于“配置”应用程序的消息。消息通过configService bean加载到配置存储库中: //读取配置文件 from(“文件:data/config?noop=true&include=.*.xml”) .启动订单(1) .to(“bean:configService?方法=loadConfiguration”) .log(“已加载配置”); 第二条路由实现了收件人列表eip模式,将不同类型的输入消息传递

Apache camel apachecamel/ActiveMQ优先级路由

我有两个具有相同消费者的AMQ队列。 第一个队列(Q1)处理97%的消息,另一个队列(Q2)仅处理3%。 问题是,Q2中的消息需要在消息排队后立即进行处理。 所以,我的问题是,当第二季度有消息可用时,我需要以某种方式暂停第一条路线,以便将其发送给消费者。 apache camel路由如下所示: <route id="q1"> <from uri="jms:recordAnalysisRequests" /> <to uri="bean:analysi

Apache camel camel-bindy十进制模式

我需要一个点作为输出文件中的小数点分隔符。使用此模式时: @DataField(pos = 12, precision = 1, pattern = "####.#") Double amount; 对于ex.输入:1491.84 输出奇怪(没有小数):1491。 如果我用逗号而不是点来更改模式: @DataField(pos = 12, precision = 1, pattern = "####,#") Double amount; 输入:1491.84 输出:1491,8 那么它可

Apache camel 有可能在驼峰路线上有一个拆分池吗

我正在使用拆分器拆分一个大文件,对拆分进行一些处理,然后使用自定义聚合策略将更新的拆分保存到一个新文件中。拆分器配置为流式处理,但不是并行处理。这个很好用 问题是拆分器调用了同步的doAggregate(继承自MulticastProcessor)。当该路由上存在并发请求时,同步会显著影响性能。显然,并发请求越多,情况就越糟 是否有方法创建可用于路由的拆分器实例池?每个传入的交换都可以使用不同的拆分器实例,从而避免同步的doAggregate调用。是否可以利用自定义ProcessorFactor

Apache camel 从CamelTestSupport迁移到AbstractCamelTestNGSpringContextTests

从spring4.0.7.RELEASE的3-4个月以来,我一直在使用apachecamel 我有几个基于扩展CamelTestSupport的camel2.14.0testng测试,其中我使用了一些MockEndpoints。 我通过重写createRouteBuilder()方法来配置路由 现在,我还需要通过@Autowired注释将一些Springbean注入其中一个。 通过阅读在上所说的内容,我了解到我现在必须扩展AbstractCamelTestNGSpringContextTests

Apache camel ApacheCamel Quartz端点:运行时重新调度

是否可以使用jmx左右在运行时更改camel quartzendpoint的cron表达式?否,但您可以尝试使用CamelContext并查看是否可以在运行时添加新路由。您可以更新路由本身(包括quartz端点的配置)。例如,您可以看到Hawt.io()的Camel插件是如何实现的是的,hawtio中的quartz插件实际上使用quartz JMX在运行时重新调度。但这需要启用Quartz JMX,而且它的本地JMX API也不容易使用,所以我们在hawtio中添加了一个facade。但关键是它

Apache camel 骆驼蓝图测试与黄瓜

是否可以将cucumber与CamelBlueprintTestSupport结合使用?我有跑步课: @RunWith(Cucumber.class) @CucumberOptions(monochrome=true, format={ "pretty", "html:target/cucumber"}, features = "C:/Users/Developer/workspace_camel/SRV002_PatronInformation/src/tes

Apache camel 在Apache Camel中,有没有一种方法可以通过另一条路由上的一条路由获得并释放锁

我正在寻找一种方法,通过这种方法,一条路由可以获得并释放另一条路由上的锁,下面是我的代码片段,我正在寻找一种解决方案,其中snmp陷阱路由和snmp定时器路由可以获得业务逻辑路由上的排他锁,并且当一条路由正在处理另一条路由时,应该等待它完成 <route id="snmp-trap-route"> <from uri="snmp:{{snmp.host}}:{{snmp.port}}?protocol=udp&amp;type=TRAP" /> <to ur

Apache camel 驼峰文件组件-跳过文件

我正在使用camel文件组件轮询目录中的文件。 在我处理文件之前必须满足一些条件, 如果没有,camel应跳过该文件,而不删除/移动该文件,并 转到下一个 为此,我使用以下方法: public InputStream myMethod(@Body InputStream is, @Headers .....) { if( !checkPrerequisites ) throw new MyRuntimeException("conditions not satisfied yet");

Apache camel Camel onException重新交付澄清

所以我有点不确定这将如何工作。我有一个“断管”的例外,不时发生。根据日志,它会触发2个异常被抛出:org.apache.camel.component.file.GenericFileOperationFailedException由于文件无法到达其端点,而java.net.SocketException因为这是文件无法到达端点的根本原因 为了解决这个问题,我有一个块,看起来像这样: <onException> <exception>org.apache.

Apache camel 如何从部署的包访问karaf内部的静态文件系统

我们正在使用Karaf进行Camel蓝图应用 我们想从部署在Karaf容器中的一个包访问Karaf_Home_DIR/Config 我们怎样才能访问,不知道,也不能在任何地方获得清晰的信息…我们可以使用克劳斯所说的文件API。它通常指向Karaf Root/Home目录。正如前面的回答所说,您可以使用java文件API。但是在指定文件路径时要小心 请记住,应用程序可以在其他环境中运行,因此文件路径必须独立于本地计算机(可移植性) 我建议您将此文件放在karaf etc文件夹中,并按如下方式访问:

Apache camel 带有Camel基础的ActiveMQ

我已经在谷歌上搜索了一段时间,寻找解释ActiveMQ与Camel的设置和集成的分步教程,但没有找到基本教程。 我已经有一个正在运行和配置的ActiveMQ服务器,但我就是无法启动和运行Camel组件。它总是创建一个单独的代理,我只是不能让Camel连接到现有的代理实例 我可以在哪里找到关于如何集成Camel的基本教程,以及如何更好地理解这两者如何协同工作的提示? 请不要参考Camel网站,因为这与ActiveMQ的文档一起,我的主要源代码将在这里讨论这些内容,但它在设置、配置和理解这两个包方面

Apache camel 如何将JMS重新交付到我的驼峰路由中,但仍然允许删除消息

我有一个骆驼路由,它从ActiveMQ JMS队列读取数据,进行一些处理,并将结果传递到远程目标。如果这个过程的通信部分失败,我想无限期地重试(直到目标“启动”)。我可以通过使路线交易并设置重新交付政策来处理此问题。在Camel(通过Camel.processor.RedeliveryPolicy重新尝试路由的失败部分)和ActiveMQConnectionFactory(通过org.apache.activemq.RedeliveryPolicy重新尝试整个路由)中设置重新交付 我还要求我们能

Apache camel Camel JPA事务+实体管理器

在我的实际应用程序中,我有一个业务层,它根据一些业务规则使用JPA来持久化数据,问题是camel JPA事务没有与业务层事务共享。我需要业务类中的EntityManager与Camel事务作用域集成,我如何才能做到这一点 下面是一个简单的例子,但这反映了实际设计中的问题 服务等级 @Component public class MyService { @PersistenceContext(unitName="persistenceUnit") private EntityManager

Apache camel 如何为使用swagger for camel REST服务生成的api指定“securityDefinitions”、“security”?

我正在使用ApacheCamel和XML中定义的DSL实现rest服务。rest服务使用camel-Swagger java插件提供json格式的Swagger API springfox是这里的替代品吗 api生成正确,但缺少所需的securityDefinitions和security。如何将其包含在生成的api中。我用的是basicAuth 我需要json根目录中的以下块 "securityDefinitions": { "basicAuth": { "type":

Apache camel 路线不是从Karaf 4.1.1开始,而是在ServiceMix中运行

我正在使用一个简单的camelspring项目,它有一个从一个位置复制到另一个位置的文件路由。但是,当我部署捆绑包时,甚至捆绑包处于活动状态,我不确定为什么路由没有启动。下面是我已经开始的依赖包 28 │ Active │ 80 │ 4.1.1 │ Apache Karaf :: OSGi Services :: Event 53 │ Active │ 80 │ 2.19.1 │ camel-commands-core 54 │ Active │ 50 │

Apache camel 未执行的路由:camel/fuse/activemq

为了理解如何在已部署的Jboss EAP 6.4服务器上使用驼峰路由,我正在学习一些教程。我当前应用程序的目标相当简单,因为我想从ActiveMQ主题中读取内容,然后将其注销。下面的代码总结了我的操作: package com.mycompany; import javax.ejb.Startup; import javax.enterprise.context.ApplicationScoped; import javax.jms.ConnectionFactory; import org

Apache camel Camel Azure BlobServiceProducer IllegalArgumentException:不支持的blob类型:org.apache.Camel.component.file.GenericFile

我已经编写了一个camel路由,它轮询一个文件夹并将其发送到Azure Blob容器 我遵循Azure文档页面中提到的示例 我正在倒车。我使用的不是消费者,而是Azure Blob生产者。 这是我的路线。我使用了JavaDSL from("file://C:/camel/source1").to("azure-blob://datastorage/container1/BLOB1?credentials=#credentials&operation=updateBlockBlob")

Apache camel 动态Apache驼峰输出路由

嗨,我想使用ApacheCamel计算一个动态输出路由。我在一个文件夹位置收到一堆文件,根据其内容,我想将文件移动到动态输出文件夹。输出文件夹的名称将根据文件的输入内容构造。我该怎么做呢 下面的代码读取并处理这些文件,但我不确定如何根据文件内容设置${foldername}的值 from("file:D:\\camel\\input\\one?recursive=true&delete=true") .process(new LogProcessor())

Apache camel 骆驼阿托米科斯XA不断重新连接

我最近将我的路由转移到使用XA,我不确定这是正常行为还是问题,但我看到日志中不断重新连接,并且当jms队列上没有这样的活动时,事务日志正在增长 日志显示了以下内容 16:14:19.777 [Camel (camel-1) thread #0 - JmsConsumer[AAA.TESTQ1]] INFO com.atomikos.datasource.xa.XAResourceTransaction-logInfo - XAResource.start ( 31302E3136322E323

Apache camel 自定义bean驼峰数据

如何将自定义bean用作camel中的生产者端点,然后将其连接到处理bean或/和消费者bean 例如,我想使用其中一个bean方法来使用数据库中的数据,然后将结果传递给同一bean的另一个方法,或者传递给另一个bean来处理数据,然后传递给jms队列 我想做一些类似于以下的事情,但是流永远不会流向patstat服务 public void configure() throws Exception { from("direct:start").bean("patstatServi

Apache camel 如何在apache camel xml配置文件中过滤jms消息

我希望在一般主题上创建jms订阅服务器。为了避免不必要的消息,我希望在那里创建一个过滤器。问题是java代码中的语法随处可见,但我在blueprint.xml之类的xml配置文件中找不到如何做到这一点 Java代码 String redSelector = "color='red'"; MessageConsumer redConsumer = redSession.createConsumer(queue, redSelector); 阿帕奇骆驼路线 <route id="extern

Apache camel Apache Camel multiple pollenrich()和移动参数错误

我使用的是ApacheCamel版本2.21.1,我在使用该版本时遇到了问题 从ftp下载特定文件。当我用pollRich下载2个文件时,操作需要几分钟(4分钟),在.done目录中移动第一个文件时,camel出错。 我有一个例外: `WARN o.a.camel.component.file.GenericFileOnCompletion - Error during commit. Exchange[ID-XXX16563-1529920620474-0-8]. Caused by: [o

Apache camel 如何同步执行不同交换机的驼峰路由?

我有一些同步骆驼路线,包括: from("file:...") ... .to("direct:next1") from("direct:next1") ... 现在,我想使用不同的exchange同步运行另一条路由: from("file:local/A") ... .to("file:remote/A") .to("direct:next2") from("file:remote/A") // direct:next2 ? ... 我怎样才能做到这一点呢?首先——房间里的大象。默认

Apache camel 如何在配置时在驼峰路由或交换上设置用户定义的元数据

…并在路由运行后在进程(exchange->…)中访问它 .process(exchange->exchange.setProperty(…)在这方面没有帮助,因为它只在路由运行时完成 我可以将我的数据打包到.routeId(…)(事实上,它已经在那里使路由ID唯一)并在需要时从那里提取数据,但这是一个丑陋的黑客行为 使现代化 详情如下: 在我的独立应用程序(我使用)中有tasks。每个任务可以有一个或多个transfers,它们由transferNo标识。每次传输在同步序列中最多包含八个步骤(

Apache camel Camel netty4 http客户端对http 100的处理继续

我们使用netty4 http作为客户端,当服务器端使用http 100继续应答时出现问题。 我希望客户端在内部处理这个问题并继续调用,但实际上它返回的是http 100 camel代码中的test org.apache.camel.component.netty4.http.nettyhttpclientspectcontinuetest似乎正是测试这种情况,但它被忽略了,注释为“TODO Fix it,需要返回响应”。所以我想这是一个实施计划 我是新来的太烦躁了,我想知道是否有可能通过重写C

Apache camel 在JBoss EAP 7上使用InfinispanRoutePolicy?

我尝试使用驼峰infinispan组件中的InfinispanRoutePolicy在JBoss EAP 7集群上强制实施主动/被动模式。问题是JBoss使用infinispan 8.2.8,camel组件(我使用的是3.3.0)依赖infinispan 10.1.x,两者似乎不兼容 有没有一种方法可以将内置infinispan组件与现代驼峰版本一起用于此目的 作为InfinispanRoutePolicy的替代方案,如果有InfinispanCamelRouteService,我也可以使用st

Apache camel 使用camel通过SMPP发送短信

使用Camel通过SMPP发送短信的最佳策略是什么?我应该使用ProducerTemplate吗 我是骆驼队的新手,所以我不确定我的策略是否是最好的 在我的应用程序中,当接收到一条短信时,我必须发回另一条包含一些计算内容的短信 我创造了一个 路线smsIn看起来像这样 from "uri=smpp ..." unmarshal ref="bindyDataFormat" to "uri=bean:myBean 和路线smsOut from "uri=direct:smsOut" to "uri

Apache camel ApacheCamel中的jms:queues vs seda:

我构建了一个重线程应用程序,它从网络接收网页,并执行HTML的深度处理。基本上,我所有的线程都由许多网络绑定操作和CPU绑定操作组成。我在不同的线程中运行它们(因此我实现了最大的IO/CPU利用率) 因为有数百万个URL需要处理,所以我无法运行seda:coz,因为对于Camel 2.3,默认情况下它的大小是无限的,并且在某些时候我的内存不足。我可以严格限制seda队列的大小,但我决定不这样做,而是使用JMS队列 在相同数量的线程上,我看到使用jprofiler8进行线程遥测的不同结果。 请检查

Apache camel 使用ApacheCamel的两个系统之间的请求-应答

我对EIP和ApacheCamel非常陌生,需要专家的帮助。 问题基本上是关于系统A需要使用ApacheCamel从系统B检索数据的最佳方式。 例如: 系统B有多个服务。 系统A需要通过ApacheCamel使用该服务。 ApacheCamel接收来自系统A的请求,将其传递给系统B(以某种方式),等待响应,然后将其传递回系统A。 到目前为止,我在网上找到的示例假设MultiplyService存在于ApacheCamel中: 从(“jms:queue:numbers”)到(“乘数”) 提前谢谢

Apache camel Hawtio:Camel不显示同一JVM中的所有实例

我有10个Camel组件部署在与Hawtio相同的JVM中 每一个都是唯一的,并且具有不同的ID 我可以通过JMX视图看到所有10个,但通过“驼峰”视图只能看到9个 如果我删除“1”,我可以看到数字“10”,相反,如果我删除“3”,我可以看到“10” 我找不到骆驼路线不显示在骆驼页面上的原因 有人能告诉我怎么找出原因吗 我已经在版本1.4.17和1.4.12上进行了测试 如果我使用Hawtio“销毁”10号骆驼,它会刷新显示“01”。这有助于我查看Hawtio中的所有路线: 解决方案是进入

Apache camel ApacheCamel并行拆分-知道工作何时完成?

我正在处理一个用例,我们必须拆分一条消息,将拆分后的消息发送到JMS队列,然后在队列中处理完第一条消息中的所有拆分项后再执行一些操作 我知道我可以在剥离上使用并行处理,但由于某些原因,深入研究这一点会很枯燥,在这种情况下是不可能的 我让JMS向队列发送replyTo消息。是否有任何方法可以在split()之后设置end().to(“jms:aqueueethatreplies”)块,直到收到该剥离的所有回复 下面是一些示例代码-我希望“已完成:”消息仅在我已经看到所有相应的“已接收”项时打印:“

Apache camel 阿帕奇骆驼

我想知道如何使用camel bindy将对象写入CSV,但我的类有一个用户定义的数据类型。我看到了bindy源代码,对预定义数据类型以外的数据类型给出了例外,bindy中有任何类似的选项。如果@Link可以帮上忙吗? 谢谢:) 这是我的班级 @CsvRecord Public class Myclass{ @DataField(pos = 1) private RefClass refOne; @DataField(pos = 2) private String createdOn; }

Apache camel log4j2如何禁用";日期:“;lookup-log4j引发异常

编辑目前似乎不可能 我在apache camel应用程序中使用log4j2。在camel中,可以通过以下方式配置文件名“?fileName=${date:now:yyyyMMdd HHmmss}ID.${ID}.gz” 如果我将log level设置为debug,camel会尝试记录它正在做的事情,但log4j似乎会尝试查找/解释带有“date:”的字符串,并引发异常: 2014-11-24 11:29:19,218 ERROR Invalid date format: "now:yyyyMM

Apache camel 如何识别是否处理了所有节点。?

我已经创建了一个添加到上下文中的拦截器。正在为路由中的每个节点执行此拦截器。但我想确定所有节点的处理何时完成,并执行一些操作 public class MyInterceptStrategy implements InterceptStrategy { public int count = 0; @Override public Processor wrapProcessorInInterceptors(final CamelContext context, final Pr

Apache camel Camel RabbitMQ:对于失败的InOut交换,消息保持未确认状态

我们在camel版本2.16.0中使用rabbitMQ(v3.5.5)InOut功能,并设置了如下流程: 生产者->路由1->rabbitMQ->路由2->rabbitMQ->路由3->服务bean 服务bean将返回一个响应,调用者可以选择是否感兴趣。它是这样设置的,这样就可以在异步和同步处理中重用路由,调用方可以通过将交换模式设置为InOnly或InOut来指示它是否关心响应 与端点之间的rabbitMQ配置如下: from( "direct:route1" ) .to( "rabb

Apache camel 有没有跳过的方法;“等待依赖项”;骆驼蓝图测试?

我有一些针对驼峰路线的驼峰蓝图单元测试。该路由是一个简单的驼峰路由,它从activemq队列中提取消息,然后发送到另一个队列。我正在使用osgi服务来公开我从中发送和接收的amq组件 <reference id="activemq-in" filter="(osgi.jndi.service.name=amq/in)" interface="org.apache.camel.Component" /> <camelContext> <route>

Apache camel 使用Apache Camel FTP位置读取文件

我在ApacheCamel中有一个新的要求,我需要从一个FTP位置读取一个文件,该位置包含文件名,另一个文件位于同一FTP位置。 所以我需要读取第一个文件,获取文件名,然后读取第二个文件名。如何在Apache camel中实现?您可以编写一个使用第一个文件(包含目标文件名)的简单FTP路由。读取此文件后,您可以将内容转发到服务器,在服务器上构建将使用目标文件的其他FTP路由 可以使用指定要使用的文件名的模式 您尝试了什么来实现这一点?我尝试了下面的选项,但如何从文件1中获取文件名2是来自(“).

Apache camel ApacheCamel:如何将逻辑隔离到可测试的原子路由中 让我们考虑下面的用例: 一组提供程序将数据推送到本地服务器上的相应目录中(例如,P1将数据推送到data/P1,P2将数据推送到data/P2,等等) 每个提供程序都有自己的生成规则(例如,P1生成普通txt文件,P2生成归档文件,P3生成加密文件等) 在服务器上运行的Spring Boot应用程序上,每个提供程序都有自己的驼峰路由,每10分钟从相应的目录读取一次(例如R1从(“文件:数据/P1”)、R2从(“文件:数据/P2”), ) 给定的提供者还可以组合规则(例如,P4生成包含加密数据的存档) 根据路由,读取的数据随后进行相应处理,以便将普通txt文件移动到目标目录(例如,R2解压数据并将其移动,R4解压数据,解密提取结果并将其移动,等等)

一旦实现了更多的路由,很明显大部分代码都是重复的,可以提取出来;事实上,由于可以组合规则,每个数据精化都可以看作是一个原子操作,可用于给定的路由。 例如,让我们考虑以下原子操作: 解压 解密 移动 下面是这些路线的样子: R1 R2 R3 R4 因为我想提取公共逻辑,所以这里有两个主要选项(以及相应的R4结果代码): 将逻辑提取到自定义组件中 将逻辑提取到更小的路由中 (当然,这是一个超级简化,但它只是给你一个大局) 在这两个选项中,我更喜欢后者,它允许我快速重用驼峰EIP(例如un

Apache camel 驼峰SFTP用户名具有特殊字符

我必须修改camel(2.10.2)中的现有camel SFTP项目。我是第一次和骆驼一起工作,对此我一无所知 URI=”中已经配置了一些URI。“sftp://username@hostname?password=XXX&;option=value.“格式,工作正常。 我必须在同一个内存中为新主机添加URI。问题是新主机名的用户名中包含@(例如:user@name)。因此,新的URI配置在现有格式中不起作用 我试图阅读一些手册,根据这些手册,以下是迄今为止尝试的配置: uri=”sftp

Apache camel 在ActiveMQ Artemis中为MQTT处理设置和配置Apache Camel

我是ActiveMQ和Apache Camel的新手,对它们和Camel设置有一些问题 我正在运行ActiveMQ Artemis 2.14.0(),并且在端口1883上运行MQTT代理 Client1正在使用MQTT发布一些消息,client2已订阅并检索这些消息。现在,我想将Camel与ActiveMQ-Artemis一起添加为控制器(路由器),这样我就可以控制MQTT数据的转发或编辑它,还可以执行一些MQTT到REST的转换 我不知道我需要使用ActiveMQ Artemis和Camel的

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