Apache Camel是一个功能强大的开源集成框架,基于已知的企业集成模式和强大的Bean集成
无法设置 Apache Camel SMPP 以使用 GSM-7 从 SMSC 节点接收消息
这个问题是关于 Apache Camel SMPP 和 GSM-7 使用camel-smpp-starter 4.2.0 我们的 SMSC 根据标头使用 SMSC 默认字母表向我们的应用程序发送短信。这是根据...
有没有办法让骆驼删除不是来自文件使用者的文件? 更准确地说:在我的路线中,我收集了一个文件列表(不是来自文件组件),然后对其进行处理。啊...
我需要在 Camel 2.12 中暂时禁用证书验证。我正在引用一个测试 Web 服务,该服务当前提供无效证书并获得以下信息
Flaky Consumer 无法在 Camel 和 Spring 中消费消息(~ 1%)
我正在使用 ProducerTemplate 和 ConsumerTemplate 来处理简单路由测试中的消息发送和接收。我还使用带有 activeMQ 图像的 testcontainer 。下面有一个设置: @
最终字符串 sftpEndpoint = "sftp://{{sftp.write.host}}" + ":" + "{{sftp.write.port}}" +“{{sftp.write.folder}}” +“?使用...
在项目中,我一直在运行时动态加载 Apache Camel 路由。 当前环境包括 Spring 2.7.4、Apache Camel 3.18.0 和 JDK 17 private void fromFile(最终路径文件...
我正在尝试简单地解组 XML 文件,如下所示: ...
我使用 Spring boot 和 apache Camel 创建了一个应用程序。当我使用 Camel 3.x 时,我使用这个答案来发布文件 multipart/form-data 文件。 但是自从我升级到 Camel 4.0.0 后就没有了...
Apache Camel (un)marshal 与“gzipDeflater”如何工作?
在此代码片段中,我想使用 Camel 解压缩 gzip 正文。根据Camel文档,除了camel-core之外不需要其他依赖项。 公共静态无效主(最终字符串[...
我有多个线程在骆驼上下文中运行。每个线程都在积累数据。我无法在骆驼环境中停止路线。这是我的代码: 公共无效stopThread(字符串routeId,CamelContext
在准备发布 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> 你能尝试一下吗?
有没有办法只追加文件的更改数据而不是使用 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 上下文(及其“路由上下文”)...