首先是我要做的基本工作
我有一个要从中读取消息的MQ
预处理XML,并在Exchange上设置属性
发出HTTP请求
处理来自http请求和初始exchange上属性的数据
将其放入出站消息队列
我一直在四处寻找,以确认每次从初始MQ读取消息时,都将创建一个新的Exchange。我还没能找到任何明确的说法,但我假设并想知道是否有人能证实或否认这一点
交换只使用一次吗?路由是否会为传入的每条消息创建新的交换
谢谢
编辑:当然,我的搭档会立即在谷歌上搜索并找到答案。是的,它是唯一的,我们在这里找到了
我正在尝试在fuse esb上使用ApacheMina和camel。我面临一个部署问题
这是我的路线:
<beans xmlns...
<bean id="myCodec" class="test.net.mina.codec.MyMinaCodec" />
<camelContext xmlns="http://camel.apache.org/schema/spring">
<route>
&l
我已经编写了一个简单的路由,它将获取任何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
我正在开发一个camel原型,它在同一个camel上下文中使用两个起点
第一条路由使用用于“配置”应用程序的消息。消息通过configService bean加载到配置存储库中:
//读取配置文件
from(“文件:data/config?noop=true&include=.*.xml”)
.启动订单(1)
.to(“bean:configService?方法=loadConfiguration”)
.log(“已加载配置”);
第二条路由实现了收件人列表eip模式,将不同类型的输入消息传递
我有两个具有相同消费者的AMQ队列。
第一个队列(Q1)处理97%的消息,另一个队列(Q2)仅处理3%。
问题是,Q2中的消息需要在消息排队后立即进行处理。
所以,我的问题是,当第二季度有消息可用时,我需要以某种方式暂停第一条路线,以便将其发送给消费者。
apache camel路由如下所示:
<route id="q1">
<from uri="jms:recordAnalysisRequests" />
<to uri="bean:analysi
我需要一个点作为输出文件中的小数点分隔符。使用此模式时:
@DataField(pos = 12, precision = 1, pattern = "####.#") Double amount;
对于ex.输入:1491.84
输出奇怪(没有小数):1491。
如果我用逗号而不是点来更改模式:
@DataField(pos = 12, precision = 1, pattern = "####,#") Double amount;
输入:1491.84
输出:1491,8
那么它可
我正在使用拆分器拆分一个大文件,对拆分进行一些处理,然后使用自定义聚合策略将更新的拆分保存到一个新文件中。拆分器配置为流式处理,但不是并行处理。这个很好用
问题是拆分器调用了同步的doAggregate(继承自MulticastProcessor)。当该路由上存在并发请求时,同步会显著影响性能。显然,并发请求越多,情况就越糟
是否有方法创建可用于路由的拆分器实例池?每个传入的交换都可以使用不同的拆分器实例,从而避免同步的doAggregate调用。是否可以利用自定义ProcessorFactor
从spring4.0.7.RELEASE的3-4个月以来,我一直在使用apachecamel
我有几个基于扩展CamelTestSupport的camel2.14.0testng测试,其中我使用了一些MockEndpoints。
我通过重写createRouteBuilder()方法来配置路由
现在,我还需要通过@Autowired注释将一些Springbean注入其中一个。
通过阅读在上所说的内容,我了解到我现在必须扩展AbstractCamelTestNGSpringContextTests
是否可以使用jmx左右在运行时更改camel quartzendpoint的cron表达式?否,但您可以尝试使用CamelContext并查看是否可以在运行时添加新路由。您可以更新路由本身(包括quartz端点的配置)。例如,您可以看到Hawt.io()的Camel插件是如何实现的是的,hawtio中的quartz插件实际上使用quartz JMX在运行时重新调度。但这需要启用Quartz JMX,而且它的本地JMX API也不容易使用,所以我们在hawtio中添加了一个facade。但关键是它
是否可以将cucumber与CamelBlueprintTestSupport结合使用?我有跑步课:
@RunWith(Cucumber.class)
@CucumberOptions(monochrome=true,
format={ "pretty", "html:target/cucumber"},
features = "C:/Users/Developer/workspace_camel/SRV002_PatronInformation/src/tes
我正在寻找一种方法,通过这种方法,一条路由可以获得并释放另一条路由上的锁,下面是我的代码片段,我正在寻找一种解决方案,其中snmp陷阱路由和snmp定时器路由可以获得业务逻辑路由上的排他锁,并且当一条路由正在处理另一条路由时,应该等待它完成
<route id="snmp-trap-route">
<from uri="snmp:{{snmp.host}}:{{snmp.port}}?protocol=udp&type=TRAP" />
<to ur
我试图编写一个骆驼路由,读取数据库表以获取绝对文件路径列表,然后将这些文件复制到另一个文件夹。但是,仅将文件路径创建为内容,而不是原始内容
from("timer://testDataGen?repeatCount=1")
.to("sql:" + positionSql + "?dataSource=dataSource")
.split(body())
.to("file://" + positionlistDir )
.log("Finished c
我正在使用camel文件组件轮询目录中的文件。
在我处理文件之前必须满足一些条件,
如果没有,camel应跳过该文件,而不删除/移动该文件,并
转到下一个
为此,我使用以下方法:
public InputStream myMethod(@Body InputStream is, @Headers .....) {
if( !checkPrerequisites )
throw new MyRuntimeException("conditions not satisfied yet");
所以我有点不确定这将如何工作。我有一个“断管”的例外,不时发生。根据日志,它会触发2个异常被抛出:org.apache.camel.component.file.GenericFileOperationFailedException由于文件无法到达其端点,而java.net.SocketException因为这是文件无法到达端点的根本原因
为了解决这个问题,我有一个块,看起来像这样:
<onException>
<exception>org.apache.
我正在尝试在Jboss Fuse 6.2.1服务器结构管理中安装hazelcast-all-3.6.5版本。安装时,它抛出以下错误
Unable to update agent org.osgi.service.resolver.ResolutionException: Unable to resolve root: missing requirement [root]
osgi.identity; osgi.identity=appid1-hazelcast; type=karaf.feat
我们正在使用Karaf进行Camel蓝图应用
我们想从部署在Karaf容器中的一个包访问Karaf_Home_DIR/Config
我们怎样才能访问,不知道,也不能在任何地方获得清晰的信息…我们可以使用克劳斯所说的文件API。它通常指向Karaf Root/Home目录。正如前面的回答所说,您可以使用java文件API。但是在指定文件路径时要小心
请记住,应用程序可以在其他环境中运行,因此文件路径必须独立于本地计算机(可移植性)
我建议您将此文件放在karaf etc文件夹中,并按如下方式访问:
我已经在谷歌上搜索了一段时间,寻找解释ActiveMQ与Camel的设置和集成的分步教程,但没有找到基本教程。
我已经有一个正在运行和配置的ActiveMQ服务器,但我就是无法启动和运行Camel组件。它总是创建一个单独的代理,我只是不能让Camel连接到现有的代理实例
我可以在哪里找到关于如何集成Camel的基本教程,以及如何更好地理解这两者如何协同工作的提示?
请不要参考Camel网站,因为这与ActiveMQ的文档一起,我的主要源代码将在这里讨论这些内容,但它在设置、配置和理解这两个包方面
我有一个骆驼路由,它从ActiveMQ JMS队列读取数据,进行一些处理,并将结果传递到远程目标。如果这个过程的通信部分失败,我想无限期地重试(直到目标“启动”)。我可以通过使路线交易并设置重新交付政策来处理此问题。在Camel(通过Camel.processor.RedeliveryPolicy重新尝试路由的失败部分)和ActiveMQConnectionFactory(通过org.apache.activemq.RedeliveryPolicy重新尝试整个路由)中设置重新交付
我还要求我们能
我有一个布尔标志propertyplaceholder,我试图在我的一个单元测试中覆盖它,但它不起作用
<cm:property-placeholder id="id" persistent-id="persistent-id>
<cm:default-properties>
<cm:property name="flag" value="true" />
</cm:default-properties>
</cm:prope
在我的实际应用程序中,我有一个业务层,它根据一些业务规则使用JPA来持久化数据,问题是camel JPA事务没有与业务层事务共享。我需要业务类中的EntityManager与Camel事务作用域集成,我如何才能做到这一点
下面是一个简单的例子,但这反映了实际设计中的问题
服务等级
@Component
public class MyService {
@PersistenceContext(unitName="persistenceUnit") private EntityManager
我正在使用ApacheCamel和XML中定义的DSL实现rest服务。rest服务使用camel-Swagger java插件提供json格式的Swagger API
springfox是这里的替代品吗
api生成正确,但缺少所需的securityDefinitions和security。如何将其包含在生成的api中。我用的是basicAuth
我需要json根目录中的以下块
"securityDefinitions": {
"basicAuth": {
"type":
我正在使用一个简单的camelspring项目,它有一个从一个位置复制到另一个位置的文件路由。但是,当我部署捆绑包时,甚至捆绑包处于活动状态,我不确定为什么路由没有启动。下面是我已经开始的依赖包
28 │ Active │ 80 │ 4.1.1 │ Apache Karaf :: OSGi Services :: Event
53 │ Active │ 80 │ 2.19.1 │ camel-commands-core
54 │ Active │ 50 │
为了理解如何在已部署的Jboss EAP 6.4服务器上使用驼峰路由,我正在学习一些教程。我当前应用程序的目标相当简单,因为我想从ActiveMQ主题中读取内容,然后将其注销。下面的代码总结了我的操作:
package com.mycompany;
import javax.ejb.Startup;
import javax.enterprise.context.ApplicationScoped;
import javax.jms.ConnectionFactory;
import org
我已经编写了一个camel路由,它轮询一个文件夹并将其发送到Azure Blob容器
我遵循Azure文档页面中提到的示例
我正在倒车。我使用的不是消费者,而是Azure Blob生产者。
这是我的路线。我使用了JavaDSL
from("file://C:/camel/source1").to("azure-blob://datastorage/container1/BLOB1?credentials=#credentials&operation=updateBlockBlob")
嗨,我想使用ApacheCamel计算一个动态输出路由。我在一个文件夹位置收到一堆文件,根据其内容,我想将文件移动到动态输出文件夹。输出文件夹的名称将根据文件的输入内容构造。我该怎么做呢
下面的代码读取并处理这些文件,但我不确定如何根据文件内容设置${foldername}的值
from("file:D:\\camel\\input\\one?recursive=true&delete=true")
.process(new LogProcessor())
我最近将我的路由转移到使用XA,我不确定这是正常行为还是问题,但我看到日志中不断重新连接,并且当jms队列上没有这样的活动时,事务日志正在增长
日志显示了以下内容
16:14:19.777 [Camel (camel-1) thread #0 - JmsConsumer[AAA.TESTQ1]] INFO com.atomikos.datasource.xa.XAResourceTransaction-logInfo - XAResource.start ( 31302E3136322E323
如何将自定义bean用作camel中的生产者端点,然后将其连接到处理bean或/和消费者bean
例如,我想使用其中一个bean方法来使用数据库中的数据,然后将结果传递给同一bean的另一个方法,或者传递给另一个bean来处理数据,然后传递给jms队列
我想做一些类似于以下的事情,但是流永远不会流向patstat服务
public void configure() throws Exception {
from("direct:start").bean("patstatServi
我希望在一般主题上创建jms订阅服务器。为了避免不必要的消息,我希望在那里创建一个过滤器。问题是java代码中的语法随处可见,但我在blueprint.xml之类的xml配置文件中找不到如何做到这一点
Java代码
String redSelector = "color='red'";
MessageConsumer redConsumer = redSession.createConsumer(queue, redSelector);
阿帕奇骆驼路线
<route id="extern
我使用的是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
我有一些同步骆驼路线,包括:
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 ?
...
我怎样才能做到这一点呢?首先——房间里的大象。默认
…并在路由运行后在进程(exchange->…)中访问它
.process(exchange->exchange.setProperty(…)在这方面没有帮助,因为它只在路由运行时完成
我可以将我的数据打包到.routeId(…)(事实上,它已经在那里使路由ID唯一)并在需要时从那里提取数据,但这是一个丑陋的黑客行为
使现代化
详情如下:
在我的独立应用程序(我使用)中有tasks。每个任务可以有一个或多个transfers,它们由transferNo标识。每次传输在同步序列中最多包含八个步骤(
我们使用netty4 http作为客户端,当服务器端使用http 100继续应答时出现问题。
我希望客户端在内部处理这个问题并继续调用,但实际上它返回的是http 100
camel代码中的test org.apache.camel.component.netty4.http.nettyhttpclientspectcontinuetest似乎正是测试这种情况,但它被忽略了,注释为“TODO Fix it,需要返回响应”。所以我想这是一个实施计划
我是新来的太烦躁了,我想知道是否有可能通过重写C
我尝试使用驼峰infinispan组件中的InfinispanRoutePolicy在JBoss EAP 7集群上强制实施主动/被动模式。问题是JBoss使用infinispan 8.2.8,camel组件(我使用的是3.3.0)依赖infinispan 10.1.x,两者似乎不兼容
有没有一种方法可以将内置infinispan组件与现代驼峰版本一起用于此目的
作为InfinispanRoutePolicy的替代方案,如果有InfinispanCamelRouteService,我也可以使用st
使用Camel通过SMPP发送短信的最佳策略是什么?我应该使用ProducerTemplate吗
我是骆驼队的新手,所以我不确定我的策略是否是最好的
在我的应用程序中,当接收到一条短信时,我必须发回另一条包含一些计算内容的短信
我创造了一个
路线smsIn看起来像这样
from "uri=smpp ..."
unmarshal ref="bindyDataFormat"
to "uri=bean:myBean
和路线smsOut
from "uri=direct:smsOut"
to "uri
我构建了一个重线程应用程序,它从网络接收网页,并执行HTML的深度处理。基本上,我所有的线程都由许多网络绑定操作和CPU绑定操作组成。我在不同的线程中运行它们(因此我实现了最大的IO/CPU利用率)
因为有数百万个URL需要处理,所以我无法运行seda:coz,因为对于Camel 2.3,默认情况下它的大小是无限的,并且在某些时候我的内存不足。我可以严格限制seda队列的大小,但我决定不这样做,而是使用JMS队列
在相同数量的线程上,我看到使用jprofiler8进行线程遥测的不同结果。
请检查
我有一个简单的路径,就是获取以.fin结尾的文件,该文件的主体是我必须发送到ftp服务器的文件名。这是路线:
<route id="sendToFtp">
<from uri="file:{{tmp.files.location}}/export/pr?delete=true&include=.*.txt.fin"/>
<process ref="getFileProcess" />
<log message="S
我对EIP和ApacheCamel非常陌生,需要专家的帮助。
问题基本上是关于系统A需要使用ApacheCamel从系统B检索数据的最佳方式。
例如:
系统B有多个服务。
系统A需要通过ApacheCamel使用该服务。
ApacheCamel接收来自系统A的请求,将其传递给系统B(以某种方式),等待响应,然后将其传递回系统A。
到目前为止,我在网上找到的示例假设MultiplyService存在于ApacheCamel中:
从(“jms:queue:numbers”)到(“乘数”)
提前谢谢
给定服务器配置:
<camel:camelContext id="reporting_shoppingCard"
xmlns="http://camel.apache.org/schema/spring">
<camel:contextScan />
<camel:export uri="activemq:queue:bshop.reports.shoppingCard"
serviceRef="reportingServi
我有10个Camel组件部署在与Hawtio相同的JVM中
每一个都是唯一的,并且具有不同的ID
我可以通过JMX视图看到所有10个,但通过“驼峰”视图只能看到9个
如果我删除“1”,我可以看到数字“10”,相反,如果我删除“3”,我可以看到“10”
我找不到骆驼路线不显示在骆驼页面上的原因
有人能告诉我怎么找出原因吗
我已经在版本1.4.17和1.4.12上进行了测试
如果我使用Hawtio“销毁”10号骆驼,它会刷新显示“01”。这有助于我查看Hawtio中的所有路线:
解决方案是进入
我正在处理一个用例,我们必须拆分一条消息,将拆分后的消息发送到JMS队列,然后在队列中处理完第一条消息中的所有拆分项后再执行一些操作
我知道我可以在剥离上使用并行处理,但由于某些原因,深入研究这一点会很枯燥,在这种情况下是不可能的
我让JMS向队列发送replyTo消息。是否有任何方法可以在split()之后设置end().to(“jms:aqueueethatreplies”)块,直到收到该剥离的所有回复
下面是一些示例代码-我希望“已完成:”消息仅在我已经看到所有相应的“已接收”项时打印:“
我想知道如何使用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。在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
我已经创建了一个添加到上下文中的拦截器。正在为路由中的每个节点执行此拦截器。但我想确定所有节点的处理何时完成,并执行一些操作
public class MyInterceptStrategy implements InterceptStrategy {
public int count = 0;
@Override
public Processor wrapProcessorInInterceptors(final CamelContext context,
final Pr
我们在camel版本2.16.0中使用rabbitMQ(v3.5.5)InOut功能,并设置了如下流程:
生产者->路由1->rabbitMQ->路由2->rabbitMQ->路由3->服务bean
服务bean将返回一个响应,调用者可以选择是否感兴趣。它是这样设置的,这样就可以在异步和同步处理中重用路由,调用方可以通过将交换模式设置为InOnly或InOut来指示它是否关心响应
与端点之间的rabbitMQ配置如下:
from( "direct:route1" )
.to( "rabb
我有一些针对驼峰路线的驼峰蓝图单元测试。该路由是一个简单的驼峰路由,它从activemq队列中提取消息,然后发送到另一个队列。我正在使用osgi服务来公开我从中发送和接收的amq组件
<reference id="activemq-in" filter="(osgi.jndi.service.name=amq/in)" interface="org.apache.camel.Component" />
<camelContext>
<route>
我在ApacheCamel中有一个新的要求,我需要从一个FTP位置读取一个文件,该位置包含文件名,另一个文件位于同一FTP位置。
所以我需要读取第一个文件,获取文件名,然后读取第二个文件名。如何在Apache camel中实现?您可以编写一个使用第一个文件(包含目标文件名)的简单FTP路由。读取此文件后,您可以将内容转发到服务器,在服务器上构建将使用目标文件的其他FTP路由
可以使用指定要使用的文件名的模式 您尝试了什么来实现这一点?我尝试了下面的选项,但如何从文件1中获取文件名2是来自(“).
我正在测试这条骆驼路线:
from("direct:start")
.setHeader(Exchange.HTTP_METHOD, constant("GET"))
.to("http://127.0.0.1:8088/")
.to("mock:result");
…使用此模拟服务器:
mockServer = MockRestServiceServer.createServer(new RestTemplate());
mockServer.expect(
一旦实现了更多的路由,很明显大部分代码都是重复的,可以提取出来;事实上,由于可以组合规则,每个数据精化都可以看作是一个原子操作,可用于给定的路由。
例如,让我们考虑以下原子操作:
解压
解密
移动
下面是这些路线的样子:
R1
R2
R3
R4
因为我想提取公共逻辑,所以这里有两个主要选项(以及相应的R4结果代码):
将逻辑提取到自定义组件中
将逻辑提取到更小的路由中
(当然,这是一个超级简化,但它只是给你一个大局)
在这两个选项中,我更喜欢后者,它允许我快速重用驼峰EIP(例如un
我必须修改camel(2.10.2)中的现有camel SFTP项目。我是第一次和骆驼一起工作,对此我一无所知
URI=”中已经配置了一些URI。“sftp://username@hostname?password=XXX&;option=value.“格式,工作正常。
我必须在同一个内存中为新主机添加URI。问题是新主机名的用户名中包含@(例如:user@name)。因此,新的URI配置在现有格式中不起作用
我试图阅读一些手册,根据这些手册,以下是迄今为止尝试的配置:
uri=”sftp
我是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 页