apache-camel 相关问题

Apache Camel是一个功能强大的开源集成框架,基于已知的企业集成模式和强大的Bean集成

停止并从骆驼上下文中删除路线

我有多个线程在骆驼上下文中运行。每个线程都在积累数据。我无法在骆驼环境中停止路线。这是我的代码: 公共无效stopThread(字符串routeId,CamelContext

回答 1 投票 0

在 Camel 4.0 中从 XML 创建路由

在准备发布 Camel 4.0 时,我正在尝试找到一种方法来迁移我的方法,这些方法从 XML 文件创建 Route 或 RouteDefinition 对象,其路由如下所示: 在准备发布 Camel 4.0 时,我正在尝试找到一种方法来迁移我的方法,这些方法从 XML 文件创建 Route 或 RouteDefinition 对象,其路由如下所示: <routes xmlns="http://camel.apache.org/schema/spring" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring-3.20.2.xsd"> <route id=....> ...... </route> </routes> 这样它们就可以加载到 CamelContext 中 在 Camel 3.20 中,我将它们加载到 CamelContext 中,就像 String xmlContent = myBean.getXMLFileContent();//imagine this string's content is as described above //I am open to converting this string into a java.io.File and new methodologies that the Camel team is leaning towards try (InputStream is = new ByteArrayInputStream(xmlContent.getBytes())) { XMLRoutesDefinitionLoader loader = extendedCamelContext.getXMLRoutesDefinitionLoader(); RoutesDefinition routesDefinition = (RoutesDefinition) loader.loadRoutesDefinition(camelContext, is); modelCamelContext.addRouteDefinitions(routesDefinition.getRoutes()); } 通过导入 <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-xml-io</artifactId> <version>${camel.version}</version> </dependency> 我遇到了同样的问题,对我来说,通过添加整个 Spring Boot 启动依赖项解决了这个问题。好像有些课程改变了。 <dependency> <groupId>org.apache.camel.springboot</groupId> <artifactId>camel-spring-boot-xml-starter</artifactId> </dependency> 你能尝试一下吗?

回答 1 投票 0

有没有办法只追加文件的更改数据而不是使用 Apache Camel 覆盖文件?

我是 Apache Camel 的新手,我尝试在 sftp 和本地之间进行 csv 文件同步: 公共类 MyRouteBuilder 扩展 RouteBuilder { 公共无效配置(){ 来自(“sftp://user@ad...

回答 1 投票 0

camel:如何异步发送到端点

如何在不等待端点的路由被处理的情况下向端点发送消息(也就是说,我的路由应该只发送消息并完成)?

回答 7 投票 0

Apache Camel:如何并行发送两个http请求并等待响应?

在 Apache Camel 中,我定义了一个路由,如何并行发送两个或多个 http 请求并等待它们的“未来”以获取响应以进行进一步处理,就像在 Java 中使用 AsyncHttp...

回答 2 投票 0

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路由之外处理错误响应。我认为这种方式更好,因为您可以从所调用的服务获得完整的响应,并且您可以根据响应中的实际失败代码/原因进行错误处理。

回答 3 投票 0

如何删除camelLock文件

我们正在 Quarkus 环境中运行 apache-camel,一旦该过程完成,我们希望删除以“camelLock”结尾的文件。我们只是对&qu...

回答 1 投票 0

如何通过命令行向Apache Camel传递参数?

我使用 Apache Camel 的 Spring Main 来启动我的 Camel 应用程序。我需要我的应用程序读取命令行参数来设置一些参数。因此,我无法使用属性文件。 此刻,我可以...

回答 2 投票 0

在camel-spring boot应用程序中getObject操作返回元数据而不是来自GCP的对象内容

我有一个 Spring Boot 应用程序,使用 Camel 连接到 google 对象存储以获取对象(文本或照片)。 这是我正在运行的代码: 封装 FootballRestAPI; 导入 org.apache.camel.b...

回答 2 投票 0

Camel 重试 - 使用 MockEndpoint 进行单元测试重新交付尝试计数

我正在尝试编写简单的单元测试来验证Camel路由是否配置正确以及是否真正进行了重新传递尝试。我有这个路线构建器实现: LocalEndpoint 类扩展

回答 1 投票 0

在 Apache Camel 中动态加载路由的最佳方法

我们开发了基于Karaf和Apache Camel的应用程序。虽然我们的应用程序完全基于捆绑包(OSGI),但我们还在星上加载 Camel 上下文(及其“路由上下文”)...

回答 3 投票 0

无法创建CamelSalesforcesourceSourceConnector:ResolveEndpointFailedException

背景:我是一名Python开发人员,从未使用过Java。 Camel Salesforce Source Connector:v3.20.6(我尝试过 3.21.0 和 4.0.0,但遇到了同样的问题) 卡夫卡:v3.6.1 问题: 尝试...

回答 1 投票 0

Apache Camel 将 XML DSL 中每个路由的日志记录到专用目录

如何在 XML DSL 中将每个 Apache Camel 路由定义为单独的专用目录/文件夹的日志记录?我们希望保留现有的记录器。 非常感谢您对前任的清晰而详尽的答复...

回答 1 投票 0

如何在quartz.properties文件中动态设置jobstore数据源

我正在使用 Apache Camel 的 Quartz 组件来运行一些预定路线。我想为调度程序配置 JDBC JobStore,并且能够在quartz 中设置必要的属性。

回答 1 投票 0

使用 Apache Camel 公开 Rest API - 收到 404

我尝试了非常简单的路线: 休息配置() .component("servlet"); 休息().get(“/你好”) .to(“直接:你好”); 来自(“直接...

回答 2 投票 0

从 Camel Rest DSL 生成 OpenAPI 时出错

我们最近将 apache Camel 从 3.x 升级到 4.x。从那时起 swagger 就不再工作了。请参阅 swagger ui 的附图。 启动应用程序时我们收到以下警告。 20...

回答 1 投票 0

将 Apache Karaf 部署到生产环境中

上下文:我目前正在使用 Apache Camel 执行一些集成任务。我使用 Maven 编译代码,它为我提供了安装在 Apache Karaf 实例(v. 4.4.1)中的捆绑包。在...之上

回答 1 投票 0

camel-jms:共享持久订阅:参数subscriptionName转义点(.)

阿帕奇阿耳忒弥斯:2.31.2 弹簧启动:2.7.18 阿帕奇骆驼:3.22.0 我有一个关于 ActiveMQ Artemis 中 Camel 共享持久订阅的问题。 我已从 ActiveMQ Classic VirtualTopics 迁移,...

回答 1 投票 0

Camel Kafka接收器连接器配置和依赖项

我正在尝试使用“camel-azure-storage-datalake-kafka-connector”从 Kafka 连接到 Azure ADLS Gen2 我有一个运行 Docker 的 Linux 机器,其中包含 debezium/zookeeper、debezium/kafka 和 debe...

回答 1 投票 0

将 CachedOutputStream 转换为字符串

将 CachedOutputStream 转换为字符串。 将camel从2.12升级到2.23后,我的路线出现问题,相同的代码相同的路线。 调用端点后的响应是 org.apache.camel 类型。

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.