在 Wildfly Swarm 上使用 Java DSL 设置 Apache Camel Rest 路由

Setup Apache Camel Rest route using Java DSL on Wildfly Swarm

我正在尝试在 Wildfly Swarm 中设置 Camel Rest 服务,但我不确定 RouteBuilder class 是如何实例化的,甚至不确定 CamelContext 是如何实例化的.我下载了 Wildfly Swarm 示例并查看了 Camel CXF-JAXRS 项目,这很有意义,但它使用 XML 来定义路由。我想使用 Java DSL。我的 RouteBuilder class 看起来像这样:

public class GreetingService extends RouteBuilder {
    @Override
    public void configure() {
        System.out.println("RouteBuilder.configure");
        restConfiguration().host("localhost").port("9797");
        rest("/say")
                .get("/hello").to("direct:hello")
                .get("/bye").consumes("application/json").to("direct:bye")
                .post("/bye").to("mock:update");

            from("direct:hello")
                .transform().constant("Hello World");
            from("direct:bye")
                .transform().constant("Bye World");
    } 
}

我已经尝试过使用和不使用 camel-context.xml 文件。 Swarm 启动,但我无法浏览到其余服务端点。

如何调用 RouteBuilder?我是否应该使用某种 main 方法来实例化 CamelContext

我正在使用 Widlfy Swarm 2017.8.1,class 在 war 文件中。

您可以在 web.xml 中添加此侦听器到 bootstrap 骆驼。
org.apache.camel.component.servletlistener.SimpleCamelServletContextListener 或者你可以使用 spring 定义骆驼上下文