当前位置: 首页 > 知识库问答 >
问题:

是否可以在进程()中启动骆驼endpoint

杨晓博
2023-03-14

正如标题所说:是否可以在路由(-builder)的流程功能中启动一个驼峰endpoint?我刚接触apache camel,但已经做了一些项目。

情况如下:我正在使用apache camel和西门子Teamcenter RAC执行一个SavedQuery。结果是一个ModelObject[]和找到的元素

对于这些元素中的每一个,我现在需要启动另一个endpoint,执行第二个搜索查询。我想到了这样的事情:

//within .process()
for (ModelObject ob : arrModelObjects) {
    // something like:  .to("direct:searchnew")
}

但我不能在处理器中引用外部函数“.to()”。是否有解决方法或解决方案,或者我的想法是错误的?

共有2个答案

艾心远
2023-03-14
   class MyProcessor implements Processor{

    private ProducerTemplate producerTemplate;
      @Override
      public void process(Exchange exchange) throws Exception {
         for (ModelObject ob : arrModelObjects) {
               producerTemplate.send("direct:searchnew",exchange);    
       }}
    }

将producerTemplate添加到上下文中。

孟海
2023-03-14

正如@Rathna提到的,您可以使用producerTemboard。

您可以根据您的上下文创建一个新的生产者模板,您可以从exchange获得该模板,如下所示:

public class MyProcessor implements Processor{

@Override
public void process(Exchange exchange) throws Exception {
    ProducerTemplate producerTemplate = exchange.getContext().createProducerTemplate();

    ModelObject[] arrModelObjects = (ModelObject[]) exchange.getIn().getBody();

    for (ModelObject ob : arrModelObjects) {
        producerTemplate.sendBody("direct:someEndpoint", ob);
    }
}

}

 类似资料:
  • 我有3个单独运行的Spring Boot-Camel应用程序。我需要链接这些进程,例如在进程A完成后,它应该启动进程B,然后一旦进程B完成,它应该继续进程C。如果中间有任何进程失败,进程链应该重试失败的进程,并继续执行到下一个。此外,在进程A中,如果路由中的任何步骤有任何失败,那么我也需要重试并从中间步骤开始。有人能帮我实现这个场景吗?

  • 我已经为IntelliJ安装了Camel插件。 要开始调试,我们必须创建一个临时应用程序 您如何确切地知道本地加载的端口应用程序是什么?我怎样才能改变它?我没有找到关于。。。

  • 但是,当我从file explorer双击jar文件时,没有发生任何事情,没有启动任何控制台,也没有运行任何进程。我错过了什么?

  • 问题内容: 我正在尝试从骆驼路线中删除一些样板。 例如,让我们考虑两条路线,它们是相似的,并且它们的大部分内部物质都可以生成。我已经创建了一个组件“模板”,该模板创建了,并修改了XML配置以使用模板组件。 正在从中定义自定义方法(添加路线定义)。因此,在启动Camel上下文时,路由定义会出现在上下文中,但是框架不会为其创建路由服务,因此它们不会启动。 如何开始添加路线? 可能我遇到了XY问题,您可

  • 问题内容: 我正在尝试构建一个android应用程序,此应用程序的主要功能之一是使其能够在手机启动时自动启动活动,我在手机上看到一些应用程序已经执行了此操作,因此任何帮助都将非常有用。我可以至少通过sdk对此进行更好的研究,谢谢! 问题答案: 您需要像这样实现BroadCastreceiver: 在清单中添加以下内容: 添加权限:

  • 我在JPA上遇到了以下问题,但这可能更像是一个关于骆驼的概念问题。 我需要一个基于cron的石英消费者。但如果触发了,我想选择JPA组件作为第一步。 但是如果我用“to”调用JPA组件,那么它被用作生产者,而不是消费者。我可以以某种方式使用JPA组件来处理这个问题吗,或者我必须遵循服务激活器(基于bean的)逻辑并将JPA组件留在后面? 提前谢谢你,葛格利