我已经声明了我的CustomException类。
当OneException捕捉到它时,它将转到我定义的处理器:
onException(classOf[CustomException]).process(doSmth)
到目前为止还不错。
我需要进入处理器以检查异常是否为CustomException类型的问题
当我写作时:
def process(exchange: Exchange) = {
val exception: Exception = exchange.getProp
我需要能够启动和停止RouteBuilder外的路线。。。因此,我有一个类,它监视外部服务并打开和关闭路由。基本上,我希望路由停止使用新请求,并处理当前的机上请求
因此,我有一个每x秒运行一次的计划任务,它可以打开和关闭服务。但我发现停止和启动路由会导致线程泄漏
基本代码:
for(int iCount=0;iCount<10;iCount++) {
camelContext.stopRoute(TEST_ROUTE);
camelContext.startRoute(TES
我目前正在开发一个Camel集成应用程序,其中从以前的处理状态恢复是很重要的。例如,当停电时,重要的是不要重新处理所有以前处理过的消息。处理应从停机前停止的位置恢复
我已经讨论了很多可能的解决方案,包括赤土和其他。我不确定如何使用它们,因为与ApacheCamel集成的文档很少。然而,这两件事我还没有决定
我正在寻找关于我可以使用的潜在替代方案的建议,或者一些教程的指针来帮助我开始学习 在中断中生存的困难主要在于状态,以及如何处理飞行中的消息
通常,当您谈论路由内的状态时,解决方案是将其刷新到磁
我正在使用ServiceMix实现ESB解决方案
我有自己的系统和一堆web服务
以及几个具有不同服务的外部系统(大多数具有WS接口,一些具有其他接口)
这些将与ServiceMix/Camel连接。这里正在进行一些消息路由、转换和其他EIP。解决方案可能利用JMS队列进行捆绑包之间的通信
关于此解决方案的良好捆绑设计结构有什么建议吗?我应该把所有的东西都放在一个包中吗?我应该把路由放在一个包中,把每个外部系统的转换放在自己的包中吗?或者……什么样的结构可以在不太复杂的情况下提供足够的模块化
使用Camel是否可以拆分以下XML消息
<?xml version="1.0" encoding="UTF-8"?>
<MyOrder>
<header>
....
</header>
<body>
<item>
<itemNumber>10</itemNumber>
<itemType>A</itemType>
<
是否可以在apache camel中查看seda队列的内容
我正在尝试创建路线,并希望查看我创建的seda队列的内容。是seda组件也可浏览:
因此,Java和JMX中的API允许您查看队列和队列上的交换。使用日志记录。请参阅..浏览不是一种过激行为,我认为处理器或日志组件足以满足需要。他可能希望查看队列中的内容,并保留队列中的数据。如果从seda队列路由到日志端点,则会从队列中删除数据。
有人能建议如何使用驼峰SSH组件指定keyPairProvider选项吗
我正在尝试使用驼峰SSH组件和KeyPairProvider选项连接到远程SSH服务器。文档中不清楚如何使用这个选项、语法或我们需要提供的值等。我已经尝试过给出类名、完整的类路径、密钥文件名等。没有任何效果。我总是得到下面的错误
Caused by: java.lang.IllegalArgumentException: Could not find a suitable setter for property: keyP
路由1:
1. Send Message M1 to MQ Q1. // This message goes to a program that consumes from Q1 and once some processing is done, write message M2 to Q2.<br/>
2. Upon receiving Message M2 on Q2, //Q2 receives several messages (M2,N2,P2, etc.). ONLY
我想用Camel“打开”一个基于应用程序的产品到企业的集成。也就是说,我希望购买我的应用程序的客户能够通过Camel向应用程序提供信息,而无需在我的应用程序上创建完整的公共API
我已经阅读了大量的camel文档、示例,甚至是这本书,但我在概念上还是有困难。
首先,我可以让Camel运行:我的应用程序支持Spring,我只是不知道如何“部署”它
让我对用例进行一个巨大的过度简化:
比如说,我希望我的应用程序偶尔弹出一个对话框,其中包含一条消息。“我的web应用程序”控制对话框何时弹出
我希望消
我试图在Camel中使用RecipientList模式,但我认为我可能没有抓住要点。以下代码仅在屏幕上显示一个条目:
@Override
protected RouteBuilder createRouteBuilder() {
return new RouteBuilder() {
public void configure() {
from("direct:start").recipientList(bean(MyBean.class, "bu
我试图实现一个with,它给出了下面的示例代码段
from("direct:start")
.to("log:foo")
.wireTap("direct:tap")
.to("mock:result");
如果我运行一个模拟示例(例如,camel示例jms文件),这就可以工作。但是,如果我使用示例代码并尝试替换一个真实的代理实例和队列来替换模拟对象,它将失败,并出现以下错误
from("tcp://localhost:61616")
.to("ativemq:atsUpdateQueue")
我想将csv文件转换为xml,并将转换后的xml文件发送到activemq中的队列。是否有任何示例代码或任何参考网站或博客请帮助查找此程序的示例代码。使用和组件。From(使用JMS端点而不是文件端点):
要连接到JMS,请查看和组件。package org.mycompany.conversion;
package org.mycompany.conversion;
import java.util.List;
import javax.xml.bind.annotation.XmlAcc
我试图对Mule esb有一个清晰的定义,并阅读了Mule是消息传递框架和“高度分布式对象代理”的一些地方
这是什么意思,它是一个对象代理?它是否可以通过网络公开服务?camel也是一个对象代理,还是仅仅是一个消息传递框架?您是否可以使用无容器的camel在网络上公开服务?这就是它们的区别吗 这是Mule最初的口号,远远早于Gartner普及ESB术语
此时(2005年),Mule是围绕通用消息对象(UMOs)的概念构建的,因此,它将自己定位为这些UMOs的可伸缩、分布式容器。因此出现了“高度分
我需要将osgi包写入简单的解组edifact消息(invoice),并将invoice持久化到数据库中。我在响应期间收到异常
我的环境:
-ServiceMix 5.0.0
我要走骆驼路线
<route>
<from uri="mina2:tcp://localhost:9999?textline=true&encoding=utf-8" />
<to uri="smooks://smooks-config.
我使用了camel的FTP组件,但它无法下载我想要的文件
<camel:endpoint id="ftpNotificationDownload" uri="sftp:/11.1.1.1://app/as?username=aa&password=1111&fastExistsCheck=true&localWorkDirectory=C:\\asd&download=true&throwExceptionOn
我是骆驼队的新手,我正在努力做到以下几点
我想处理相同的消息两次。我必须转换这两条消息并首先处理一条消息,然后只有在第一条消息成功执行时才处理第二条消息(我有一个条件)
我首先尝试使用多播。然后我转换每条路由中的消息。第一个(操作\u DC)仅在成功时向第二个(操作\u AC)发送成功消息。第二个操作包含一个聚合,该聚合将等待两条消息超时。我只想处理来自多播的消息,并丢弃另一条消息
<route id="t_operation_ME">
<from uri="direc
我有一个如下设置
我遇到的问题是,在使用OnException中的seda组件时,当抛出异常时(在下面的第行中),不会删除幂等存储库中的密钥。当我在OnException中更改为使用direct时,将从缓存中删除密钥。在这两次试验中,电子邮件也被正确发送
我的问题是:
在OnException中使用seda时,为什么没有从存储库缓存中删除密钥
在OnException中使用seda是否存在问题
以下是路线:
MyRouteClass1
onException(Exception.class)
我正在使用Camel(试用2.15.2和2.16.3)和activemq Camel(试用5.12.1和5.13.3)组件将捆绑包中的路由连接到外部activemq服务器。bundle部署在Karaf中(尝试了3.0.5和4.0.5),并通过蓝图上下文(包含Camel上下文)启动。有问题的捆绑包只包含一个amq生产者
只要未交换任何消息,卸载/重新启动捆绑包就没有问题。但在第一次消息交换后的任何时候,卸载捆绑包时,我都会收到javax.jms.IllegalStateException:
201
我有一条骆驼路线,如下所示:-
来自(“码头:http://localhost:8888/orchestratorservice过程(处理器)
from(“direct:setStatusToReadyToShip”)。到(“bean:orderHelper?method=setStatusToReadyToShip”)
我已经看过了。但是有没有一种方法可以根据查询/头参数获得速率限制/限制(例如,如果在请求中设置了debug=1,那么我们希望将请求限制为10 req/sec)。是的,这是可行的
如何在spring DSL中动态设置上下文id?考虑一下我的场景,
Bundle A:我在其中设置id属性的上下文,比如simplectx。这个包有一些其他的实用程序bean,这些bean在其他包中使用
Bundle B:导入一个上下文文件,我在其中定义了camel上下文。在B中,我定义了B特定路线
Bundle C:导入一个上下文文件,我在其中定义了camel上下文。在C中,我定义了C特定的路由
现在,bundle B和C依赖于bundle A。现在,如果我使用上下文列表命令,它将列出简单的c
Apache Camel MQTT模块是否有办法手动确认消息
用例:在复制的服务环境中,如果某个服务当时无法处理此类消息,我希望能够不确认消息(并将其放回代理上)
我看到async PaHo客户端中有一些用于此的功能,但在mqtt模块中找不到此功能的配置值。您是在谈论驼峰mqtt组件吗?如果是,请检查其源代码。但是我建议使用camel-paho作为其更易于维护的工具是的,查看了代码,但这似乎没有任何作用。我想知道它是否隐藏在驼峰代码的某个地方,因为我假设这是许多连接器所需要的。刚刚做了一个随机失
我是骆驼队的新手,正在寻找模式或策略来管理骆驼路线中目标系统的可用性
例如,假设我想要:
-从文件服务器读取输入数据的步骤
-处理数据(数据->目标数据)
-使用Rest服务(称为TargetSystem)将目标数据(TargetData)发送到目标网站
我的问题是,如果目标系统瘫痪,最好的策略是什么
我知道,如果一条路由失败,则可以回滚整个流程。但是如果TargetSystem是一个外部系统,并且可能会关闭数小时,我认为在目标系统启动之前尝试回滚该过程不是一个好方法
有没有适合这个问题的模式或
我有一个使用海底组件的休息服务。我使用wildfly和wildfly补丁4.7.0(apache camel 2.19)
我无法用我的Rest服务部门的北欧信件回复。和邮递员一起测试
代码是:
@Override
public void configure() throws Exception {
restConfiguration().component("undertow");
rest("/hello").post("/{name}").consu
我正在拆分一个大文件,需要生成如下文件名
file.x.y.txt
x是文件分割数,y是分割总数
通过一些复杂的过程,这些文件已经生成为file.x.txt
到目前为止,我有:
from("file://out?include=*.txt&move=${file:name}.<how to set this>.txt")
from(“file://out?include=*.txt&;move=${file:name}..txt”)
我不知道如何将y号传递给
应用程序有几个camel上下文,每个上下文做自己的事情,因此不需要彼此通信。它们位于同一模块中,因为它们共享一些类
在单个osgi模块中存在多个上下文的情况下,是否有需要注意的问题
在这种情况下,建议和最佳做法是什么?这是相当主观的。IMHO:要考虑的两件大事是过程控制和升级影响。请记住--在捆绑包升级过程中,所有上下文都将停止,然后重新启动
您仍然能够在驼峰上下文和路由级别执行细粒度过程控制(启动、停止、暂停、恢复),而不必依赖于bundle start | stop
如果您想要细粒度的升级能
动态模板并不是指动态URI。我指的是模板本身,它是由数据库中的片段组装而成的,以各种方式转换,插入图像,等等。所有这些都是在我的骆驼路线中完成的。完成的XSLT模板位于exchange属性中,现在我想通过该XSLT运行消息体XML
与提供了很大灵活性的XQuery组件不同,模板文件似乎只能来自XSLT组件的外部源。是否必须先将其作为文件写入?设置选项contentCache=false,然后在每条消息上重新读取模板。然后它可以从一个文件中加载eg,然后您可以根据需要使用新内容更新该文件
要添加对
在ApacheCamel中,有没有从不同的jar文件资源文件夹读取属性文件的技术
我有两个项目,一个是ESB tracker,另一个是ESB common。queue-config.properties位于ESB common/pk/com/herman/common/resources/下
ESB common是fuse集成项目中的一个简单java项目和ESB跟踪器,在该项目中,我试图使用下面的行读取此属性文件
<propertyPlaceholder id="properties" l
我有一个路由(route1),它将数据发送到HTTP端点。为此,它必须设置一个授权头。
标头值每小时超时一次,必须续订
为此,我创建了另一个路由(route2),它使用提供的凭据(getCredentials)定期从web服务获取访问令牌。这个很好用
如何使访问令牌可用于route1
我尝试过简单的局部变量、静态变量、原子引用变量(volatile和static…)
我的代码(为了可读性而缩短):
公共类数据路由扩展RouteBuilder{
volatile静态AtomicReference缓
我正在使用Camel向Postgres数据库的查询发送一个命名参数。讨论中的命名参数是命名成员,是字符串化mac地址的列表,例如[40:61:86:05:fd:69','40:61:86:05:fd:69'],然后我想用它来筛选结果集
简化,其中mac列位于\u varchar\u mac的列表\u中。
实际代码段:
SELECT
*
FROM
table
WHERE
mac IN(:#in:members::macaddr);
然而,只有当mac地址列表中有一项时,上
Apache Camel在尝试聚合来自我的AWS SQS队列的消息时引发无效的相关键异常。
消息是使用ZipSplitt放在队列中的,它们都以匹配的“parentId”值出现在队列中(我使用随机uuid添加了这些值,作为拆分的一部分-我也尝试了CamleSourceFile)。我反复得到异常,直到重试次数用尽
我的总体表达:
from(--queue--).aggregate(header("parentId"), customAggregationStrategy).completionTim
我有一条路线:
multicast().to(A, B, C)
在我想跳过B的情况下,我通过.properties文件中的属性将其定义为direct:noop,但没有定义使用者noop
在头痛了几个小时后,我发现以下几点:
failIfNoConsumers默认值:true Camel 2.16.0:指示生产者在发送到没有活动使用者的直接端点时是否应通过引发异常而失败
我没有更改failIfNoConsumers选项,我使用的是Camel 2.22.1,但它不会引发异常,而是在完成后默默中止路
当java代码在Linux上运行时,Camel sftp无法轮询超过2级的深度,但它在Windows上运行良好
例如,从
sftp://user@域名:22/folder1/folder2
可在Unix和Windows上工作。但是,当我使用
sftp://user@域:22/folder1/folder2/folder3
路由始终启动,但在Unix上运行的路由无法获取文件夹3中的文件
Route: route22 started and consuming from:sftp://user@do
我想根据系统的主机名和其他一些逻辑来听ActiveMQ主题。我计划为此使用pollRich,因此我评估了我的逻辑,并在pollRich中提供了主题名称,但:
pollEnrich或enrich不访问当前Exchange的任何数据,这意味着在轮询时,它无法使用您在Exchange上设置的任何现有标头。例如,您不能在Exchange.FILE\u NAME标题中设置文件名,并使用pollEnrich仅使用该文件。为此,必须在端点URI中设置文件名
我怎么能弄明白呢
from("timer://ipc
我试图在fuse server中部署我的应用程序,但它给了我一个错误“无法启动bundle abc的blueprint容器,
org.osgi.service.blueprint.container.ComponentDefinitionException:java.lang.NullPointerException”。我有骆驼核心和骆驼蓝图罐,但它仍然给我的错误。不知道它指的是什么。请问有人能帮忙吗
<?xml version="1.0" encoding="UTF-8"?>
&
我希望自动从主题中删除旧消息,因此我使用了中描述的选项timeToLive。但是,它仅适用于队列,而不适用于主题。知道为什么吗
出于测试目的,我制定了以下简单路线:
路由发送消息到我的测试主题,TTL=10秒。我希望在10秒钟后信息会消失
当我改为使用队列时,一切正常()您如何知道消息在10秒后没有被删除?如何观察这一事实是整个用例的一个重要部分。我正在使用Red Hat Jboss Fuse管理控制台查看主题属性,在那里我可以看到主题上的“排队”在增加,但在指定的时间之后,没有发生其他事情
我通过以下方式设置了骆驼路线:
List<SomeRouteInfo> routes = getRouteInfo(); //I crete the routes using the info in the list.
for ( SomeRouteInfo info : routes ){
RouteDefinition routeDef = from(info.from());
routeDef
.errorHandler(someErrorHa
使用xslt转换文件后,我必须附加从ftp下载的文件。因此,我做了以下工作:
from("direct:adobe_productList_incremental")
.id("routeADOBESPtransformPI_productList")
.log(LoggingLevel.INFO, "---------Starting file: ${body}")
.convertBodyTo(InputStre
对于POJO生产,Camel文档中提到InOut是默认值。
但是,如果我们使用的是ProducerTemplate的sendBody(),那么是否还需要像下面的示例一样设置@inoly
public class MyBean {
@Produce(uri = "direct:hello")
private ProducerTemplate producerTemplate;
@InOnly
void someInOnlyMethod()
{
...
producerTemplate.send
我已将延迟器(30000)指令设置为路由。在这30秒内,当我在这条路径上执行一次优雅的关机时,消息会立即传输到下一条指令。这正常吗
实际上这很聪明,但我怎么还能推迟交换呢
PS:对不起,camel 2.2.0是一个旧版本。
我不认为您可以在这里获得一些免费支持。您使用的是哪种骆驼版本?
字符串processFiles=”file://somedirectory?readLock=rename&preMove=inprogress/&move=../processed/&moveFailed=../error/"
字符串后处理器=”file://somedirectory/inprogress";
从(进程文件)
.螺纹(10)
.routeId(“someId”)
.to(“bean:somebean”)
从(后处理器)
.routeId(“后期处理”)
.to(“bean
目前我正在使用ApacheCamel,我需要做的是在启动应用程序时在Camel中创建一个WMQ队列(类似于会话队列),并在停止应用程序时删除它。有什么可能的办法吗
或者,在创建连接工厂时,我检查了ApacheCamel是否会创建一个具有随机名称的临时名称。有没有办法将临时队列的名称从随机名称更改为静态名称
仅供参考,目前我正在使用Spring进行组件配置
谢谢好的,这实际上与Apache Camel没有任何关系,因为它可以被视为与此问题相关的任何JMS客户端应用程序
IBM WebSphere
嗨,我有一个非常简单的路由,从FTP位置读取文件。当我部署到服务组合(Jboss Fuse)中时,它会按预期读取文件
当我有一个大文件时,它会在完成复制到该位置之前读取该文件
如何解决此问题?如果问题是您在发件人完成发送之前读取了文件,则需要使用带有“重命名”值的“readlock”参数。这是该参数在FTP上工作的唯一值
如果问题是有人在您完成发送之前读取了文件,则需要使用“tempPrefix”参数。这将在仍然复制其内容时为文件名添加前缀(以便消费者在该阶段忽略它),并且仅在文件完全传输后重命
我想在Karaf中创建一个命令来挂起当前启动的所有骆驼路线。类似地,我将有另一个脚本来恢复所有暂停的路由
我的想法是这样做:
each (camel:route-list | grep Started) { camel:route-suspend $route }
我的第一个问题是camel:route list不返回值
如果有任何帮助,我们将不胜感激。目前的Camel Karaf命令无法做到这一点。我记录了一张罚单,看看我们是否可以在未来的Apache Camel版本中改进这一点
所以
我在PlayFramework中运行Camel,它运行得很好,但是当Play服务器在开发模式下运行时,它会动态地重新加载类,但每次都会启动一个新的Camel上下文
我可以通过调用CamelContext上的stop()来连接到Play restart并关闭CamelContext,但我更希望能够检查是否已经有一个上下文在运行,如果已经有,就使用它
这一定是可能的,因为hawtio向我展示了骆驼上下文列表
我不使用spring来配置camel 您可以使用JMX查看JVM mbean服务器中的其他上
我试图编写一个Camel路由,通过jolokiarestapi从ActiveMQ服务器获取JMX数据。我能够成功地从ActiveMQ服务器获取JSON对象,但是我遇到了一个问题,我无法理解如何在骆驼路由中解析JSON对象。Camel与Jackson、Gson和XStream集成在一起,但它们似乎都需要一个我没有的额外库。Camel还支持JSONPath,但它需要另一个我没有的库。到目前为止,我的所有研究似乎都指向使用一个新的软件库,所以我正在寻找一个知道解决方案的人,以可能节省我一些时间,避免尝
我想从apachecamel站点测试camel-spring集成示例
但我有个例外
org.apache.camel.runtimecameleexception:org.springframework.integration.MessageDeliveryException:Dispatcher没有channel outputchannel的订阅服务器
我的简短代码如下:
<channel id="inChannel"/>
<channel id="outputChannel
我正在使用ApacheCamel处理文件
但是,我问是否可以根据字节数拆分文件
例如,如果我有一个大小为1go的文件,是否可以按10mo的块读取它(使用一个定义块大小的参数)
是否有一个组件驼峰EIP能够做到这一点
我尝试过流缓存,但什么也没发生
<camelContext xmlns="http://camel.apache.org/schema/spring" trace="true">
<properties>
<proper
你能帮我解决这个问题吗?我很少被介绍
JMS消息侦听器的执行失败。Java.io.IOException过早EOF的原因
多谢各位 这很可能是由于路线定义不正确造成的。当我在参数之间缺少一些“&”字符,或者在开始时没有“jms:queue”或“jms:topic”时,我遇到了这个错误
如何修改下面的查询以传递承载令牌
.to("https://api.github.com/gists" +
"?httpMethod=POST" +
"&authMethod=Basic" +
"&authUsername={{github.username}}&quo
我正在尝试使用连接到IBMMQ的ApacheCamel在JavaSpring引导中实现事务性JMS客户机。此外,当消息处理失败时,客户端需要应用指数退避重新交付行为。原因:来自MQ的消息需要处理并转发到外部系统,这些系统可能会因维护而停机数小时。对我来说,使用事务保证至少一次处理保证似乎是合适的解决方案
我已经研究这个话题好几个小时了,还没有找到解决办法。我将从我目前拥有的开始:
@Bean
UserCredentialsConnectionFactoryAdapter uccConne
1 2 3 4 5 6 ...
下一页 最后一页 共 40 页