Apache Camel是一个功能强大的开源集成框架,基于已知的企业集成模式和强大的Bean集成
有没有办法只追加文件的更改数据而不是使用 Apache Camel 覆盖文件?
我是 Apache Camel 的新手,我尝试在 sftp 和本地之间进行 csv 文件同步: 公共类 MyRouteBuilder 扩展 RouteBuilder { 公共无效配置(){ 来自(“sftp://user@ad...
Apache Camel:如何并行发送两个http请求并等待响应?
在 Apache Camel 中,我定义了一个路由,如何并行发送两个或多个 http 请求并等待它们的“未来”以获取响应以进行进一步处理,就像在 Java 中使用 AsyncHttp...
Apache Camel:如何获取从 Rest API 返回的消息?
我有一条带有错误处理程序的路线: ... 我有一条带有错误处理程序的路线: <route errorHandlerRef="magentoCustomerErrorHandler" id="customers.route2"> ... <to id="_to1" uri="http4://{{magento.api.url}}customer/"/> </route> 在我的错误处理程序中,我在 onRedelivery 中调用处理器 <bean class="br.com.company.ProcessorError" id="myErrorProcessor"/> <bean class="org.apache.camel.builder.DeadLetterChannelBuilder" id="magentoCustomerErrorHandler"> <property name="deadLetterUri" value="activemq:magento:customers:DQL"/> <property name="onRedelivery" ref="myErrorProcessor"/> <property name="redeliveryPolicy" ref="myRedeliveryPolicyConfig"/> </bean> 在错误处理器中,我尝试获取 API 返回的消息,但我只获取骆驼生成的消息。 ErrorProcessor 类: public void process(Exchange exchange) throws Exception { Exception cause = exchange.getProperty(Exchange.EXCEPTION_CAUGHT, Exception.class); exchange.getIn().setHeader("FailedBecause", cause.getMessage()); } API 响应: {"messages":{"error":[{"code":500,"message":"Token doesn't exist or is expired."}]}} 预期消息: Token doesn't exist or is expired 返回信息: HTTP operation failed invoking http://myurl.com/api/rest/customer/ with statusCode: 500 我的错误是我使用的异常类型。 要获取 REST 返回的正文,我需要使用 HttpOperationFailedException。 ErrorProcessor 类 public void process(Exchange exchange) throws Exception { HttpOperationFailedException cause = exchange.getProperty(Exchange.EXCEPTION_CAUGHT, HttpOperationFailedException.class); exchange.getIn().setHeader("FailedBecause", cause.getMessage()); exchange.getIn().setHeader("ResponseBody", cause.getResponseBody()); } 尝试启用 useOriginalMessage 选项: <bean class="org.apache.camel.builder.DeadLetterChannelBuilder" id="magentoCustomerErrorHandler"> <property name="deadLetterUri" value="activemq:magento:customers:DQL"/> <property name="onRedelivery" ref="myErrorProcessor"/> <property name="useOriginalMessage" value="true"/> <property name="redeliveryPolicy" ref="myRedeliveryPolicyConfig"/> Camel 在进行 http 调用时将任何除 200 之外的 HTTP 响应代码视为失败,因此您需要 setThrowExceptionOnFailure 设置为 false 来指示 Camel 路由忽略 http 响应代码并仅返回它收到的任何正文。 这是 Java DSL 示例: getContext().getEndpoint(endpoint, HttpEndpoint.class).setThrowExceptionOnFailure(false); 确保端点是主机:端口,仅不带任何http路径,它完全匹配。 参考:http://camel.apache.org/http.html,寻找throwExceptionOnFailure 请注意,如果设置为 false,则camel不会走异常处理路由,正常返回,需要在camel路由之外处理错误响应。我认为这种方式更好,因为您可以从所调用的服务获得完整的响应,并且您可以根据响应中的实际失败代码/原因进行错误处理。
我们正在 Quarkus 环境中运行 apache-camel,一旦该过程完成,我们希望删除以“camelLock”结尾的文件。我们只是对&qu...
我使用 Apache Camel 的 Spring Main 来启动我的 Camel 应用程序。我需要我的应用程序读取命令行参数来设置一些参数。因此,我无法使用属性文件。 此刻,我可以...
在camel-spring boot应用程序中getObject操作返回元数据而不是来自GCP的对象内容
我有一个 Spring Boot 应用程序,使用 Camel 连接到 google 对象存储以获取对象(文本或照片)。 这是我正在运行的代码: 封装 FootballRestAPI; 导入 org.apache.camel.b...
Camel 重试 - 使用 MockEndpoint 进行单元测试重新交付尝试计数
我正在尝试编写简单的单元测试来验证Camel路由是否配置正确以及是否真正进行了重新传递尝试。我有这个路线构建器实现: LocalEndpoint 类扩展
我们开发了基于Karaf和Apache Camel的应用程序。虽然我们的应用程序完全基于捆绑包(OSGI),但我们还在星上加载 Camel 上下文(及其“路由上下文”)...
无法创建CamelSalesforcesourceSourceConnector:ResolveEndpointFailedException
背景:我是一名Python开发人员,从未使用过Java。 Camel Salesforce Source Connector:v3.20.6(我尝试过 3.21.0 和 4.0.0,但遇到了同样的问题) 卡夫卡:v3.6.1 问题: 尝试...
Apache Camel 将 XML DSL 中每个路由的日志记录到专用目录
如何在 XML DSL 中将每个 Apache Camel 路由定义为单独的专用目录/文件夹的日志记录?我们希望保留现有的记录器。 非常感谢您对前任的清晰而详尽的答复...
如何在quartz.properties文件中动态设置jobstore数据源
我正在使用 Apache Camel 的 Quartz 组件来运行一些预定路线。我想为调度程序配置 JDBC JobStore,并且能够在quartz 中设置必要的属性。
使用 Apache Camel 公开 Rest API - 收到 404
我尝试了非常简单的路线: 休息配置() .component("servlet"); 休息().get(“/你好”) .to(“直接:你好”); 来自(“直接...
从 Camel Rest DSL 生成 OpenAPI 时出错
我们最近将 apache Camel 从 3.x 升级到 4.x。从那时起 swagger 就不再工作了。请参阅 swagger ui 的附图。 启动应用程序时我们收到以下警告。 20...
上下文:我目前正在使用 Apache Camel 执行一些集成任务。我使用 Maven 编译代码,它为我提供了安装在 Apache Karaf 实例(v. 4.4.1)中的捆绑包。在...之上
camel-jms:共享持久订阅:参数subscriptionName转义点(.)
阿帕奇阿耳忒弥斯:2.31.2 弹簧启动:2.7.18 阿帕奇骆驼:3.22.0 我有一个关于 ActiveMQ Artemis 中 Camel 共享持久订阅的问题。 我已从 ActiveMQ Classic VirtualTopics 迁移,...
我正在尝试使用“camel-azure-storage-datalake-kafka-connector”从 Kafka 连接到 Azure ADLS Gen2 我有一个运行 Docker 的 Linux 机器,其中包含 debezium/zookeeper、debezium/kafka 和 debe...
将 CachedOutputStream 转换为字符串。 将camel从2.12升级到2.23后,我的路线出现问题,相同的代码相同的路线。 调用端点后的响应是 org.apache.camel 类型。
Camel/Quarkus - AdviceWith 无法通过 id 找到路线
我有以下路线: 来自(“直接:某些路线”) .id("一些路线") 。日志(...) .to("sql-stored:someProcedure(BIGINT ${exchangeProperty.someVal})") .id("someCall&...
我正在尝试构建一个 Java 应用程序,该应用程序从外部源(最好是数据库)加载 YAML DSL Camel 路由。这个想法是提供在外部编辑这些路线的可能性,刷新