我有一条骆驼休息路线,在其应有的操作后将其生产/消费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.
答案 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