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

Apache Camel Endpoint-dsl自定义组件名称

弓温书
2023-03-14

我正在尝试使用Apache Camel 3endpointDSL。这是我目前的代码。它工作正常。这是一个测试,所以非常简单。它从目录中读取并记录文件内容。

@Component
public class TestRoute extends EndpointRouteBuilder{
    final String componentName = "file";
    final String path = "/in/";
    
    @Override
    public void configure() throws Exception {      
        FileEndpointBuilder srcFileEndpoint = file(componentName, path);        
        from( srcFileEndpoint ).log(LoggingLevel.INFO, "body, ${body}");
    }//configure    
}//TestRoute

但是当我试图更改组件的名称时。例如,final String componentName=“myCustomFileComponent”;

我在控制台中遇到以下错误

Caused by: org.apache.camel.ResolveEndpointFailedException: Failed to resolve endpoint: myCustomFileComponent:///in/ due to: No component found with scheme: myCustomFileComponent

从这里,我了解到我可以为示例中的endpointmyWMQ和myAMQ提供自定义名称。例如,路由从一个目录读取,然后写入另一个目录,我希望每个组件都以不同的方式配置。但是如果我指定了一个自定义组件名,我就会得到错误。因为它找不到custonName组件。

我不知道它是否相关,但代码在Spring Boot项目中

  • Apache Camel版本3.4.0 Spring Boot版本2.3.1

共有1个答案

甄阳朔
2023-03-14

似乎你没有抓住重点。该部分解释了“是否有多个相同类型的Camel组件注册了不同的名称”。这些是注册不是endpointuri的camel组件

据我所知,在apache camel中不能有动态路由endpoint,因为路由是在开始时创建的,并且这些endpoint在运行时不会更改。

如果你需要一个从不同endpoint读取数据的路由,你可以做的是为它们设置路由,并将它们路由到相同的endpoint,比如:

public class TestRoute extends RouteBuilder {

    @Override
    public void configure() {

        from(component1)
            .to("direct:myroute")

        from(component2)
            .to("direct:myroute")

        from(component3)
            .to("direct:myroute")

        from("direct:myroute")
            .log(LoggingLevel.INFO, "body, ${body}");
    }

}
 类似资料:
  • Mpx中的自定义组件完全基于小程序原生的自定义组件支持,与此同时,Mpx提供的数据响应和模板增强等一系列增强能力都能在自定义组件中使用。 原生自定义组件的规范详情查看这里 动态组件 Mpx中提供了使用方法类似于 Vue 的动态组件能力,这是一个基于 wx:if 实现的语法。通过对 is 属性进行动态绑定,可以实现在同一个挂载点切换多个组件,前提需要动态切换的组件已经在全局或者组件中完成注册。 使用

  • PyQt5有丰富的组件,但是肯定满足不了所有开发者的所有需求,PyQt5只提供了基本的组件,像按钮,文本,滑块等。如果你还需要其他的模块,应该尝试自己去自定义一些。 自定义组件使用绘画工具创建,有两个基本方式:根据已有的创建或改进;通过自己绘图创建。 Burning widget 这个组件我们会在Nero,K3B,或者其他CD/DVD烧录软件中见到。 #!/usr/bin/python3 # -*

  • 1. Component 创建自定义组件,接受一个 Object 类型的参数。 定义段 类型 是否必填 描述 最低版本 properties Object Map 否 组件的对外属性,是属性名到属性设置的映射表 data Object 否 组件的内部数据,和 properties 一同用于组件的模板渲染 observers Object 否 组件数据字段监听器,用于监听 properties 和

  • 1. 组件模板和样式 类似于页面,自定义组件拥有自己的 FXML 模板和 FTSS 样式。 1.1 组件模板 组件模板的写法与页面模板相同。组件模板与组件数据结合后生成的节点树,将被插入到组件的引用位置上。 在组件模板中可以提供一个 <slot> 节点,用于承载组件引用时提供的子节点。​ 代码示例 <!-- 组件模板 --> <view class="wrapper"> <view>这里是组件

  • 自定义组件 开发者可以将页面内的功能模块抽象成自定义组件,以便在不同的页面中重复使用;也可以将复杂的页面拆分成多个低耦合的模块,有助于代码维护。自定义组件在使用时与基础组件非常相似。 创建自定义组件 一个自定义组件由 json jxml jxss js 4个文件组成。要编写一个自定义组件,首先需要在 json 文件中进行自定义组件声明(将 component 字段设为 true 可这一组文件设为自

  • 主要内容:GWT 自定义组件 介绍,GWT 自定义组件 示例GWT 自定义组件 介绍 GWT 提供了三种创建自定义用户界面元素的方法。遵循三种一般策略 : 通过扩展复合类创建小部件: 这是创建自定义小部件的最常见和最简单的方法。在这里,您可以使用现有的小部件来创建具有自定义属性的复合视图。 在 JAVA 中使用 GWT DOM API 创建小部件: GWT 基本小部件以这种方式创建。它仍然是创建自定义小部件的一种非常复杂的方法,应谨慎使用。 使用 Java