我是否可以使用camel从sftp服务器下载特定的文件列表,然后关闭服务?
我知道这应该是一个常见的问题,但如果不等待上下文停止,我就不知道如何做
在某种程度上,camel可以确保数据完整性?camel ftp组件只能轮询目录。
您可以使用maxMessagesPerPoll和fileName的组合,如
from("ftp://.../xyz?maxMessagesPerPoll=x&fileName=y");
也来看看
link有一些关于关机的例子。我想你可以使用直接路由和模板来做类
我正在创建自己的自定义组件来执行各种操作。我想知道什么是能够在我的uri中评估Simple的最佳方法,确切地说是在剩余的和选项中。这样我可以提供更多的灵活性。我已经看过了,但我不确定如何将评估集成到我的java代码中
提前谢谢 您可以看到文件组件如何使用简单/文件语言作为文件名选项
请参阅这些方法/类的源代码
org.apache.camel.component.file.GenericFileEndpoint#setFileName
org.apache.camel.component.fi
对骆驼来说很陌生,但到目前为止很有趣
我使用它来处理FTP:d到特定目录的csv文件,解析它们,然后将数据放在相关的MySql db表中(都在同一台主机上)
我有一个简单的CamelContext,其中包含4个路由,每个路由处理不同的文件类型,并将解析的数据放在其关联的表中。这些文件中的许多文件每15分钟就会出现在FTP目录中(时钟为15、30、45、00分钟)
camel上下文注册表只有一个条目,即数据源(org.mariadb.jdbc.MySQLDataSource提供的一个简单的Mysq
我正在研究ActiveMQ,尤其是使用Camel将其集成到我的java应用程序中
我们的体系结构涉及跨多个多线程虚拟机对作业进行排队。我特别需要两种利率限制:
每个vm每个时间段(所有线程)
每个时间段每个所有虚拟机
有没有办法在camel中指定这些,或者所有的费率限制都是在每个消费者的基础上实施的?在的帮助下,我认为您可以设置每个路线的费率限制。由于交换信息不是跨驼峰路线共享的,我认为它不能适用于所有虚拟机 实现此功能并满足要求(我可以想象)的唯一方法是使用另一个进程来监视队列。每隔一段时
我有一个场景,当在不同的框中运行两个service mix实例时,我想了解和学习这个场景。每个实例都有一个相同的程序,该程序将从ftp端点获取一个文件。他们的行为会怎样
两个节点都拾取文件,还是只有一个节点拾取文件。在这种情况下,我们不会在读取后删除文件或将文件移动到任何其他位置,并且文件会保留更长的时间
我还想知道是否有任何负载平衡解决方案可用于此场景,可以从Camel为入站端点(如文件和ftp/sftp)配置。Apache ServiceMix没有此类功能
fabric8具有现成的Camel
我只是试着用RecipentList让骆驼路线工作。但首先是一个问题:两者之间的区别是什么
多播/RecipentList(两者都没有并行处理)
多个“到”
?
在我的例子中,我希望对一些路由进行并行处理。目前都使用多个
在for循环中添加“to”:
RouteDefinition someRoute = createSomeRout(fromPart, id); \\ method
for (String pcrfTarget : cepConfig.pcrfCepTargets()) {
我希望能够基于条件以编程方式控制路由,但我找不到一种方法。
我不想像ProcessorDefinition.stop()中那样停止路由流。
我试图创建一个新的RoutePolicy,但没有任何运气
public class ProjectStateRoutePolicy extends RoutePolicySupport {
// this would be a check to an outside service
private boolean shouldStartRo
如何让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,
我正在使用camel sftp组件将文件上载到sftp服务器。
代码很简单:
File source = new File(path);
final String sftpUri = "sftp://" + userId + "@" + serverAddress + "/" + remoteDirectory+"?password="+pwd;
CamelContext context = new DefaultCamelContext();
context.addRoutes(new Ro
我的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 [
我在AMQ5.12.0上有一个2代理集群,我正在通过Tomcat8 web应用程序发送消息。我有以下Camel(2.15.2)/Spring(4.2.1)配置。我正在使用它来配置AMQ PooledConnectionFactory
<camel:camelContext id="camel-client">
<camel:template id="camelTemplate"/>
</camel:camelContext>
<bean id=
我正在使用ApacheCamel,并试图找到一种方法,在启动关机(上下文停止)时,如何以我的方式“完成”运行Exchange
例如,当我有一个简单的servlet端点处理任何HTTP请求时,我想截获shutdown并自己完成exchange—比如发送一些带有“Hey the application is stopped(应用程序正在停止)”的自定义HTTP响应
我阅读并研究了ShutdownStrategy、RoutePolicy的代码,但仍然找不到一种方法可以潜入真正的处理(进入exchang
驼峰文件组件是否支持以下配置
有两个可用的输入文件位置:
例如
D://input1/
C://input2/
驼峰文件组件应尝试从(D://input1/)位置读取(如果文件可用)
如果文件在(D://input1/)位置不可用,那么它应该从第二个输入文件位置读取。不,这在单个文件使用者上不受支持,您必须为此创建两个路由。然后,您可以使用direct组件将路由链接到公共/共享路由
from("D://input1").to("direct:shared");
from("C://input2"
我有一个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
学习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.
我想编写一个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:
您好,我是Service mix新手。有人能告诉我如何从oracle Db读取表并将该表发布到本地文件中的正确方向吗?(这里我只想使用blueprint.XML内容,我可以直接将其部署到Service mix部署文件夹中)。下面是一个示例:
public class JdbcReadFromOracleRoute extends RouteBuilder {
@Override
public void configure() throws Exception {
我想使用JBoss Fuse将web服务调用转换为Modbus/TCP消息(反之亦然)。这个协议似乎不存在第三方适配器,所以我想我必须自己编写它。这是怎么做到的
目前,我最好的猜测是JBoss Fuse将web服务调用的SOAP文件存储为一个文件,并将其传递给ApacheCamel。所以我要做的就是为这些文件格式编写一个转换器。这是正确的吗?你的假设是不正确的。根据您用于web服务调用的组件,底层技术将有所不同。例如,使用CXF组件调用web服务意味着CXF进行服务交互。而且我从未见过SOAP文
我尝试使用CamelConsumerTemplate多次下载同一文件。它没有被下载多次,但我在使用骆驼路线时完成了下载。
我想使用ConsumerTemplate多次下载文件以下是我正在尝试使用ConsumerTemplate的代码:
import org.apache.camel.CamelContext;
import org.apache.camel.ConsumerTemplate;
import org.apache.camel.Exchange;
import org.apache.
我想为我的camel文件使用者设置延迟。我正在使用blueprint DSL。不知道如何动态设置它
我希望从属性文件中提取值“1000”。阅读有关使用属性占位符的文档:它介绍了如何做到这一点。通过添加正确的属性占位符标记{{delay}使其正常工作
使用$simple{delay}会引发编译时错误。当我尝试使用simple时,它会引发编译时错误。参数delay需要一个数值uri=“file:{{PFlowDir}}{{PFlowIn_AEROW}}?delay=simple{timeout}
我有一个处理hl7消息的驼峰路由。处理成功后,我希望将其传递给另一个端点b以进行进一步处理
但是,如果processHL7中发生任何异常,我有一个catch块来执行一些处理。我想在进入doCatch和遭遇端时停止处理,但这并没有发生。无论发生什么,流都将到达端点b。当我进入doCatch街区时,如何停车
from("direct:a")
.doTry()
.to("bean:processHL7?method=process")
.doCatch(H
我被一些本该微不足道的事情难住了
我有一个xml文档,它是使用XPath进行拆分的,XPath工作得很好,但是我想用拆分文档中的值设置标题
我有一个cSetHeader组件,其语言设置为XPath和有效的XPath。但是,当我需要一个字符串时,它会以NodeList对象的形式返回值
如果我使用返回字符串的XPath表达式,它会给出一个异常,因为它无法转换为NodeList
在Talend中,如何配置XPath表达式以返回字符串。如果您直接编写camel,似乎还可以,因为有一个参数,但我看不出在T
我想在异常中记录一个错误,然后在下一个记录/拆分中继续,但它不起作用
我厌倦了onexceptan(),doTry()DSL,但它不工作,转到ErrorHandler
onException(IOException.class)
.handled(true).process(exchange -> log.error("error!!"));
from("file:" + rootDir + "/" + account + "/inbox/?move=.done")
.unmarshal
我试图在jsonpath中使用简单的表达式。我尝试在jsonpath中使用内置运算符,如“contains”、“starts with”,与头值进行比较
我尝试过使用contains操作符,但是start with操作符失败了
什么有效-
.jsonpath("$.configs[?(@.mask contains '${header.mask}')]")
什么不起作用
.jsonpath("$.configs[?(@.mask starts with '${header.mask}')]"
我有下面的骆驼路线,目前工作良好。
rest url hit正在调用重置路由
重置路由工作正常,但如何向rest服务发送正确响应
我要发送到Rest URL的响应是发送到MQService的消息的计数,如果路由进入doCatch,我希望以字符串形式发送“ERROR”
目前我还不清楚,因为在重置路径的开始时,它正在调用JavaBean,并获取正在并行拆分和处理的对象列表。
如何计算成功发送到MQ的消息数?
分裂的终点在哪里?
拆分后我是否应该使用事务进行后期处理
@Override
public
我有一个用例,可以逐行拆分文件,并根据某个键进行聚合,一旦文件中的所有记录完成拆分,就释放所有聚合的组。记录计数将是未知的,我想在camel 2.24版本中这样做
示例文件布局:
{
"key": "key1",
"rec": "rec1"
},
{
"key": "key2",
"rec": "rec2"
},
{
"key&
我使用Camel的springdsl来构建路由,并使用pojobean作为处理器
起初,我认为:
<bean ref="myPojoBeanProcessor"/>
我想知道,如果采用后一种方法,bean对象是否会随每个请求一起实例化,或者bean实例是否会被缓存并用作单例(如spring中的默认值)
我无法在camel文档或谷歌上找到答案。有人知道这个问题的答案吗?你为什么不试试呢:)
Camel将使用默认的无参数构造函数一次性创建一个实例,并缓存该实例,例如它的单例作用域。以下
如果我正在评估针对轻量级EAI框架的ApacheCamel替代方案,我应该在评估中包括什么
开源或开源都可以
它不必是Java,但必须在Windows上运行
MS替代品还可以
我不想要一个完整的ESB
它应该支持文件、soapweb服务和REST端点。OData的支持将是一种奖励
您尝试过Java吗?您可以参考比较Camel、Spring集成和其他EAI框架
对于.net,有和。我认为大众运输和ESB.net更像是一个通用的消息传递框架,不能完全与Apache Camel相比。
我是Apache Camel的新手,我开始编写一个应用程序,从一个数据库获取数据并将其插入另一个数据库。我正在使用sql组件,并试图找出如何使用SpringDSL从消息头中获取CamelSqlUpdateCount、CamelSqlRowCount和CamelSqlQuery
我知道我可以使用这个…获取数据中的属性
<log message="Processing product ${body[product_id]}"/>
下面是我的POM的摘录,展示了我正在使用的jdbc驱动程
使用骆驼2.8.0
使用码头7.5.4
from("jetty://http://myESBserver/large/resource?matchOnUriPrefix=true&bridgeEndpoint=true&enableMultipartFilter=false&disableStreamCache=true&continuationTimeout=1440000")
.to("jetty://http://myWEBserver/large/re
如何访问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.
我的问题是我有一个routeBuilder,它根据url模式向不同的模块(如a、B、D)进行路由,如下所示(customProcessor将ARestURN、BRestURN等添加到标头,标头是逗号分隔的url模式,将与标头中的CamelHttpUri匹配,以路由到正确的模块)
我现在的问题是,我需要为一个RESTURL请求提供服务,该请求要求我访问AUrl和BUrl并聚合结果,然后响应请求。我如何实现这一点
我想写一些如下的东西
from("servlet:///?matchOnUriPref
我在骆驼路线的邮件中遇到英镑符号的问题,
pound符号在我的camel rest端点上的json请求中出现时,会被转换为“?”,同样会显示在日志中
我尝试了以下方法来解决这个问题,将convertBodyTo标记字符集设置为utf-8,但没有成功
使用的驼峰版本是2.10。
地点是:en_US
路线如下:
您需要知道客户端在发布JSON时使用的编码。浏览器应向您发送内容类型标题字段中的编码信息
如果磅号显示为单个问号,则表示流具有单字节编码。如果它是多字节的,然后用单字节编码读取,它将显示为
我在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
假设我有一个Jetty组件comp1和自定义组件comp2,其中comp1生成一个交换,comp2使用它。
如何在comp2的消费者中交换Jetty组件
到目前为止,我观察到我们可以在consumer'spoll()方法中获得它,如下所示-
SomeEndpoint=camelContext.getEndpoint(“someURI”,SomeEndpoint.class)
但是在someURI和someEndpoint.class上配置什么呢
如果我提到someURI=“jetty:…”,那么
我需要从另一个restlet到类对象的camel restlet。但是我越来越
org.apache.camel.converter.stream.CachedOutputStream$WrappedInputStream@12a7889
在生产过程中
调用camel:
Future<Object> responseFuture = producer.asyncRequestBody("direct:fablertcatalogredirect", k1);
我正在使用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
我创建了一个cronscheduledulepolicy,每天下午15:30启动并启动我的路由,从某个网站获取xml并将其存储在数据库中,如下所示
CronScheduledRoutePolicy startPolicy = new CronScheduledRoutePolicy();
startPolicy.setRouteStartTime("0 30 15 * * ?");
from("direct:quatzRoute")
.routePolicy(startPolicy)
使用进程标记或使用到标记的处理器有什么区别
<route id="sample"><from uri="" /><to uri="bean:mqResponseProcessor" /></route>
<route id="sample"><from uri="" /><process ref="mqResponseProcessor"/></route>
没有区别,两者都做相同的工作
在Jav
在驼峰路由中,需要通过rest客户端从传入的json数据中读取值。使用JsonPath解析并从中获取值
用于获取json数据的表达式适用于一个值,而不适用于另一个值
从rest客户端传入的JSON数据:
[{“var1”:10,“var2”:20}]
骆驼路由中使用的JSONPath表达式:
<setHeader headerName="data1">
<jsonpath suppressException
我们有一个实现,其中消息被放置在AWS SQS队列上,并被AWS使用。我们使用concurrentConsumers=1。我们正在记录由org.apache.camel.component.aws.sqs.SqsConsumer完成的队列轮询
测试包括(从远程系统)向SQS发送消息,然后记录消息在队列中的时间。在Camel端,我们在SqsConsumer类上有跟踪日志记录,我们可以看到何时轮询队列以及何时使用消息
如果我们每10秒在队列中放置一条消息,大多数情况下,Camel会在1-2秒内拾取消
我在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
我试图在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组件?
我在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中的一
我正在使用ApacheCamel。我想创建类项目的对象(项目有一个项目列表)
这是我的路线:
<route>
<from uri="mybatis:getAllItems?statementType=SelectList&?consumer.useIterator=false>
<to uri="bean:objectFactory?method=createItems"/>
我已经设置了ApacheCamel,在其中我使用来自一个队列的消息并对其执行某种操作,然后将其传输到另一个队列
现在,如果出现异常,那么我希望它应该回滚,然后在6次尝试将其发送到死信队列后,当前回滚发生5-6次,但我的消息不会传输到死信队列
发生了什么-->
队列1-->(消耗)--->操作(引发异常)--->回滚-->再次队列1-->(消耗)-->操作(引发异常)--->回滚-->。。。这种情况发生5-6次,然后我的信息就丢失了
我不知道我的消息要去哪里以及它丢失的原因,从我的活动MQ GUI
我发现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
具有“mock:direct:foo”URI的MockEndpoint是否正确地模拟了具有“direct:foo”URI的端点?
这有什么意义吗?在阅读了《骆驼手册》中的食谱之后,我明白了这一点
mock:direct:foo充当direct:foo的mock,但与我们模拟一些常规java对象的意义不同
说明:
有一个路由将消息发送到uri为direct:foo的端点
一旦我们写
public String isMockEndpoints() { return "*"; }
在我们的测试课上
我使用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
我有一个ActiveMQ队列,由来自两个不同进程的消息填充。第一个向队列提供实际消息,另一个每隔几秒钟向队列添加“keepAlive”类型的消息。来自该队列的消息由具有camel netty端点的单个进程使用
只有在给定的时间范围内没有其他消息发送时,才能发送“keepAlive”消息。这就是为什么我想修改“keepAlive”进程,使其仅在队列中没有其他消息满足某些条件时(例如,其中一个头值等于某个值)填充队列
仅使用XML路由和流程定义(无需自定义代码实现)是否可以实现这一点?因此您希望监视
1 2 3 4 5 6 ...
下一页 最后一页 共 63 页