使用ftl进行骆驼休息响应

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用ftl进行骆驼休息响应相关的知识,希望对你有一定的参考价值。

我有一个骆驼休息路线在正常运行后接受生产/消耗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.
答案

我认为正确的网址需要双斜线:

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

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

"file:///temp/ftls/camSearch.ftl"
另一答案

尝试只有freemarker和ftl的路径。像这样

freemarker:temp/ftls/camSearch.ftl

以上是关于使用ftl进行骆驼休息响应的主要内容,如果未能解决你的问题,请参考以下文章

Apache骆驼休息服务

如何从 HTML 页面使用 apache 骆驼休息端点上传 txt 文件

骆驼如何将授权标头添加到休息路线?

Apache Camel - Spring 休息端点参考

休息模板中具有 307 状态代码的空响应实体

在 jhipster 项目中将实体属性骆驼案例转换为 json 中的蛇案例