2017-10-17 53 views
0

我试图构建一个插入Spring Boot应用程序的模块。该模块应该揭露一些REST端点,我尝试了与骆驼建立他们,因为我不希望有东西web.xml中添加等在Spring Boot中使用DSL的Apache Camel Rest端点添加/骆驼到路径

restConfiguration().component("servlet") 
     .contextPath("/my") 
     .apiContextPath("/api-doc") 
     .apiProperty("api.title", "My REST API") 
     .apiProperty("cors", "true") 
     .apiContextRouteId("my-api") 
     .bindingMode(RestBindingMode.json); 

rest("/my").description("My REST Services") 
     .get("foo/{id}").route().routeId("foo") 
     .to("direct:foo"); 

from("direct:foo") 
     .process(new FooParamParser()) 
     .log("Done"); 

我遇到的问题是,而不是在/ my/foo/123?status = abc我必须在/ camel/my/foo/123?status = abc处打它。

这样做是因为它默认使用Camel Servlet作为DSL的REST端点,我很好,但我不希望它把“/ camel”放在我的开头路径。我应该注意到,这种行为是相同的,有或没有.component("servlet")

任何方式来改变呢?

回答

0

您可以在application.properties控制这个或application.yml

e.g

camel.component.servlet.mapping.contextPath=/api/* 

参考https://github.com/apache/camel/blob/master/examples/camel-example-spring-boot-rest-jpa/src/main/resources/application.yml

+0

谢谢!有没有办法让它具体到这个实例而不是全局?我们可能有几个这些附加模块,每个模块都应该在它自己的上下文路径下。 –

+0

我不太了解你的设置中的实例/全局的概念,但你可以在属性中使用/ *,如果没有任何其他冲突,然后为DSL中的每个服务设置不同的上下文路径 – ltsallas

相关问题