使用FTL的骆驼休息响应

时间:2018-09-04 10:21:08

标签: rest apache-camel

我有一条骆驼休息路线,在其应有的操作后将其生产/消费json。现在,我希望使用FTL创建json resopnse,但是我无法做到。

这是我的代码:

rest("/").bindingMode(RestBindingMode.auto).description("Search for CAF").consumes("application/json").produces("application/json")
                .post("/search/cam")
                .type(CAMRequestDTO.class)
                .outType(CAMResponseDTO.class)
                .route().routeId("search-caf")
                .process(camSearchPreProcessor)
                .bean(camSearchService, "getCAMDetails(${body})")
                .streamCaching()
                .to("freemarker:file:/temp/ftls/camSearch.ftl")//problem
                .end().endRest();

我无法在此处使用ftl模板:

---------------------------------------------------------------------------------------------------------------------------------------
freemarker.template.TemplateNotFoundException: Template not found for name "/temp/ftls/camSearch.ftl".
The name was interpreted by this TemplateLoader: org.apache.camel.component.freemarker.FreemarkerComponent$1@4b35d31f.

2 个答案:

答案 0 :(得分:1)

我认为正确的网址需要使用斜杠:

 .to("freemarker:file://temp/ftls/camSearch.ftl")

即使最正确的是三倍斜杠。 实际上,完整的语法是“ file:// host / path”,并且可以为localhost省略主机。这将导致您的情况

"file:///temp/ftls/camSearch.ftl"

答案 1 :(得分:0)

尝试仅包含freemarker和ftl的路径。像这样

freemarker:temp/ftls/camSearch.ftl