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

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

沙岳
2023-03-14

我试图在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启动,但我无法浏览到rest服务endpoint。

如何调用RouteBuilder?我应该有某种main方法来实例化CamelContext吗?

我使用的是Widlfy Swarm 2017.8.1,该类位于war文件中。

共有1个答案

哈朗
2023-03-14

您可以在web.xml中添加这个侦听器来引导camel.
org.apache.camel.component.servletListener.SimpleCamelServletContextListener,也可以使用spring来定义camel上下文

 类似资料:
  • 下面的配置位接受一个HTTP POST,其中包含一个要创建的用户实例的JSON请求体,但如果我能让它返回一个创建的

  • 我已经下载并提取了Eclipse。我在以下目录中有Eclipse:C:\Applications\Eclipse。当我尝试运行可执行文件时,我收到以下消息: 我目前有以下文件夹: 我是否需要为我的Windows 7操作系统设置一些环境变量来运行Eclipse?如果是,我可以得到一些帮助吗?如果不是,我可以得到一些帮助来运行Eclipse。 编辑 我已更改快捷方式以包含虚拟机的路径,现在收到此错误:

  • 问题内容: 如何设置路径而不必在每次重新启动计算机时都进行设置? 尝试在Ubuntu计算机上设置JAVA_HOME时,使用了以下方法: 1)从终端执行以下命令: 2)我直接编辑了文件以在其中添加路径 真正奇怪的是,如果我在上述两种方法中的一种之后使用命令进行测试,我可以看到它设置正确,但是如果重新启动,再次注销/登录或者甚至在机器上工作了一段时间之后,都不再可用设置,我必须使用以上两种方法中的任何

  • 我安装了jdk 1.8.0,并将路径更改为。bash_profile 但是java-version仍然返回旧的java版本(1.7.0) 我检查结果是= 如果我检查,那么结果是 如何将java版本更改为新版本?

  • 我创建laravel项目,在我的本地Windows电脑上工作良好。一旦我上传到Centos7服务器(通过SSH),我的所有路由都不工作。我试图通过行动修复,例如清除缓存,删除供应商文件夹和重做安装作曲家,但没有任何帮助。我从下面的日志中抓取。 [2018-12-20 13:09:17]本地的。错误:逻辑异常:无法为序列化准备路由[api/user]。在 /var/www/html/srp/vend

  • 我已经创建了反应应用程序与顶点以下https://how-to.vertx.io/single-page-react-vertx-howto/.我已经设置反应路由使用反应路由器工作正常当我使用内部反应节点服务器运行在localhost:3000default.But当我trid通过vertx静态处理程序提供静态页面除了默认/路由其他路由返回“未找到”输入图像描述在这里