【问题标题】:Setup Apache Camel Rest route using Java DSL on Wildfly Swarm在 Wildfly Swarm 上使用 Java DSL 设置 Apache Camel Rest 路由
【发布时间】:2017-08-26 16:07:58
【问题描述】:

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

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,该课程位于 war 文件中。

【问题讨论】:

  • 您是否应用了野蝇骆驼补丁。我前一阵子做了这个,在让它工作之前我必须做一些步骤。 Hoe gaan dit 遇到了 Slaapstad?
  • @Namphibian baie lekker :) 我正在使用 mvn 来管理 Wildfly Swarm 版本(以及它的所有依赖项),它在 2017.8.1 上,这是最新的稳定版本。

标签: java rest apache-camel wildfly-swarm


【解决方案1】:

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

【讨论】:

  • 那行得通。我添加了一个src/main/resources/camel/camel-context.xml文件并指定了RouteBuilder类所在的包是这样的:<camelContext id="simpleTransform"> <packageScan><package>za.co.camel.rest</package></packageScan></camelContext>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-10
  • 1970-01-01
  • 2014-10-19
  • 2020-07-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多