当我尝试在Apache Camel中配置新的直接端点时,我的RouteBuilder的configure()-Method无法启动,并且我无法找出原因。

我有一个方法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()-Method。不幸的是,没有抛出异常或任何其他类型的错误消息。

最佳答案

要让骆驼选择您的路线,请获取CamelContext对象,并在其上调用addRoutes()方法:

因此,在RouteBuilder中定义新路线:

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


然后调用addRoutes()并传递您的RouteBuilder

context.addRoutes(new RESTRoute());


如果您不熟悉Camel,请尝试从Maven原型开始,例如camel-archetype-java,因为为您准备了样板文件。

09-25 15:32