2017-10-17 90 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

相關問題