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

在Spring应用程序中添加Apache Camel自定义组件/endpoint

杜英叡
2023-03-14

我试图在Spring Boot应用程序中实现一个自定义endpoint。

目标是将路由用作:from(“...”).process(“...”).to(“my:...”);

package com.my.endpoint;

import org.apache.camel.Consumer;
import org.apache.camel.Processor;
import org.apache.camel.Producer;
import org.apache.camel.support.DefaultEndpoint;

public class MyEndpoint extends DefaultEndpoint {

    public MyEndpoint(String uri, MyComponent myComponent) {

    }
    ...
}

package com.my.endpoint;

import org.apache.camel.Endpoint;
import org.apache.camel.Processor;
import org.apache.camel.support.DefaultConsumer;

public class MyConsumer extends DefaultConsumer {

    public MyConsumer(Endpoint endpoint, Processor processor) {

        super(endpoint, processor);
    }
}

package com.my.endpoint;

import org.apache.camel.CamelContext;
import org.apache.camel.Endpoint;
import org.apache.camel.spi.annotations.Component;
import org.apache.camel.support.DefaultComponent;

import java.util.Map;

@Component("my")
public class MyComponent extends DefaultComponent {

    public MyComponent(CamelContext camelContext) {

        super(camelContext);
    }
    ...
}

在Spring配置类中,我有:

  @Override
  public void configure() throws Exception {

        camelContext.addComponent("my", new MyComponent(camelContext));

但不起作用:

    Caused by: org.apache.camel.NoSuchEndpointException: No endpoint could be found for: my, please check your classpath contains the needed Camel component jar.

因此,我在services/org/apache/camel/component/my中添加了META-INF文件:

class=com.my.endpoint.MyComponent

我已经完全阅读了“Apache Camel在行动,第二版”,但是,目前,我不能继续我的项目,因为?

共有1个答案

邹京
2023-03-14

这是因为自定义组件必须通过@uriendpoint注释进行注释。

 类似资料:
  • 我是Camel集成的初学者,我需要创建定制的Camel组件,并在Spring Boot应用程序中使用它。 我尝试使用maven原型生成我的组件。 所以命令是这样的: mvn原型:generate-DarchetypeGroupId=org。阿帕奇。骆驼ArchetypeArtifactid=camel原型组件-DarchetypeVersion=2.12.1-DgroupId=my。tcp。骆驼c

  • 我有一个遗留的Spring应用程序,不管上下文是否完全用XML配置。我想使用@controller注释向应用程序添加一个新的控制器,所以我开始迁移到使用注释。 作为测试,我在应用程序中添加了以下控制器 我还添加了上下文:组件扫描标记到我的Spring上下文 尽管classpath scanner(ClassPathScanningCandidateComponentProvider)选择了hell

  • 问题内容: 我已经构建了自己的自定义react-bootstrap Popover组件: 该组件的呈现方式如下: 现在,我想向组件中添加自定义道具,例如:我的文字,并使用新道具在弹出框中设置一些内容,例如- 但随后我在浏览器中收到此警告: 警告:标签上的未知道具。从元素中删除这些道具。 现在,我想我可以删除零件并逐个插入所有原始道具,而无需自定义道具,但是这样我就失去了“淡入淡出”效果,这也是处理

  • 我正在用Vaadin创建一个web应用程序。我发现可以使用CSS添加自定义布局,或者在现有的vaadin组件中创建自己的主题。是否有可能在Vaadin应用程序中添加您自己的html元素和css?如果是,您如何实现?(Java 8,Intellij IDEA)

  • 我需要在窗格上有一个选择监听器和选择方法,以便在单击节点时能够监视并显示突出显示。 我做了以下操作: 这工作得很好 - 但是我无法再使用场景构建器,因为我的FXML引用了此而不是。我不确定如何将我的自定义窗格放入场景构建器。我已经看过其他问题,它们都是FXML和控制器的组合 - 这只是一个。 有没有人知道这样做的方法,或者在初始化时将< code>Pane换成< code > PaneWithSe