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

Apache Camel RouteBuilder不启动configure()

袁奇逸
2023-03-14

当我试图在Apache Camel中配置一个新的直接endpoint时,RouteBuilder的configure()-方法没有启动,我无法找出原因。

我有一个方法configureRESTRoute(),我用以下方式实现了它:

private RouteBuilder configureRESTRoute(DataSource ds) {
    RouteBuilder restRoute = new RESTRoute() {
        @Override
        public void configure() throws Exception {
            from("direct:" + ds.getConfig().get("SOURCENAME"))
                    .log("----Configuring new REST Route----: " + "direct:" + ds.getConfig().get("SOURCENAME"))
                    .setHeader(Exchange.HTTP_PATH, simple((String) ds.getConfig().get("HTTP_PATH")))
                    .setHeader(Exchange.HTTP_METHOD, constant("GET"))
                    .to("http4:" + ds.getConfig().get("HTTP_HOST"))
                    .log("----Successfully configured----");
        }
    };
    return restRoute;
}

DataSource类包含特定数据源的配置详细信息的映射。在这个方法中,我试图构建一个路由,稍后将它添加到CamelContext中。当前它返回一个空路由,因为configure()-方法被跳过。不幸的是,没有抛出异常或任何其他类型的错误消息

共有1个答案

郤仰岳
2023-03-14

要让Camel选择您的路由,请获取CamelContext对象,并在其上调用AddRoutes()方法:

因此在RouteBuilder中定义新路由:

public class RESTRoute extends RouteBuilder {
    @Override
    public void configure() throws Exception {
        from("direct:...").to("...");
    }
}

然后调用addRoutes()并传递RouteBuilder:

context.addRoutes(new RESTRoute());
 类似资料:
  • 我最近开始使用,发现它非常有趣。由于我的大多数应用程序都在中,我决定使用团队提供的spring boot starter项目进行快速设置。它附带了autoconf-spring设置,这使得查询endpoint更加容易。 在IDEA中花了几个小时进行项目设置后,我能够运行graphql示例应用程序。但我认为我的servlet仍然没有启用,只有endpoint正在运行,因为默认查询返回。 这是: 这就

  • 问题内容: 如果运行以下命令,Redis会正确启动: 我添加了我的启动脚本: 但是,当我从全新启动中启动时,Redis无法运行。我应该在哪里解决此问题? 问题答案: 这个东西通常设置为20。现在,redis需要联网还为时过早。 因此,请尝试以下操作:

  • 我将JProfiler 7配置为与本地运行的Weblogic 8.1集成。 似乎weblogic在使用JProfiler生成的脚本(名为startweblog\u JProfiler.cmd)时启动得很好 然而,janalyiler部分错误并带有以下消息(分析从未发生): 我为PATH添加了以下内容: 路径=C:\Program Files\jprofiler7\bin\windows; 修改了我

  • 当我尝试启动嵌入式tomcat时,我的应用程序将一直运行,直到tomcat达到以下行: "Dez11, 2012 3:28:06PMorg.apache.coyote.AbstractProtocol启动信息:启动协议处理程序["超文本传输协议-bio-8080"]" 有人能帮我嵌入Tomcat吗? 顺致敬意,

  • 我在开始时遇到了问题!事实上,它并没有启动,我也没有得到更多的信息: 有人能帮我吗?

  • 我很久以前做了一些自定义systemd服务,都有相同的配置(当然ExecStart除外) 这种配置已经运行了很多年,从18.04版LTS开始,我已经启动并运行了ubuntu,但是现在看起来有些systemd服务根本没有启动,配置如下(myapp.service): 服务已启用: 如果在重新启动后执行“systemctl status myapp”: 如果我在重新启动后执行“Journal alct