Apache Camel RouteBuilder无法启动configure()

时间:2018-05-19 12:50:40

标签: java apache-camel

当我尝试在Apache Camel中配置一个新的direct-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的Route。目前它返回一个空的Route,因为跳过了configure() - Method。不幸的是,没有抛出异常或任何其他类型的错误消息。

1 个答案:

答案 0 :(得分:1)

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

所以在addRoutes()

中定义新路线
RouteBuilder

然后调用public class RESTRoute extends RouteBuilder { @Override public void configure() throws Exception { from("direct:...").to("..."); } } 并传递addRoutes()

RouteBuilder

如果您是Camel的新用户,请尝试使用Maven原型,例如context.addRoutes(new RESTRoute()); ,因为已为您设置了样板文件。