1

我正在尝试让 Apache Camel 的 REST DSL 工作,但它并没有为我连接。

我有一个被称为 RouteBuilder:

@Override
public void configure() {
restConfiguration().component("servlet")
      .contextPath("/")
      .enableCORS(true)
      .dataFormatProperty("prettyPrint", "true")
      .apiContextPath("/api-doc")
      .apiProperty("api.version", buildVersion)
      .apiProperty("cors", "true")
      .bindingMode(RestBindingMode.json);

rest("/say/hello")
      .get().route().transform().constant("Hello World");
}

但是这些路线实际上并不起作用。

这是在 Spring Boot 应用程序中,该应用程序具有通过 JAX-RS 定义的其他 REST 端点,但这是一个集成包,我希望能够保持独立。奇怪的是,几个月前,在我不得不处理其他事情之前,这个 WAS 就可以工作了,但是现在,回到它,我什至无法让这个简单的端点工作。

我的 Maven pom.xml 中有 Camel,一切似乎都正常启动,但是当我点击 http:://localhost:9071/say/hello 时没有任何反应,我只是得到标准的 Tomcat 404 页面。

对我所缺少的有什么想法吗?

4

1 回答 1

4

据此:http ://www.baeldung.com/apache-camel-spring-boot

从 Camel 的 2.19 版开始,此配置已被删除,因为 CamelServlet 默认设置为“/camel”。

所以 /camel/say/hello 是正确的 URL,它对我有用。还在研究如何定制这个。

编辑:

以下是如何在 Spring Boot 下自定义它。您向 application.properties 添加一个属性,如下所示:

camel.component.servlet.mapping.contextPath=/*
于 2018-01-31T16:59:21.347 回答