【发布时间】:2018-10-22 10:30:10
【问题描述】:
我正在尝试创建一个涉及 Apache Camel 的 Spring Boot 应用程序。
Camel 路由由使用 FreeMarker 模板的消息转换组成(为此,我使用 Camel 的 Freemarker 集成)
from("direct:temporary").routeId("hello").to("freemarker:db:test-spot").end().to("stream:out");
Freemarker 模板存储在数据库中,我正在尝试使用自定义模板加载器(例如 DBTemplateLoader)加载它
但是,我还没有成功!原因,即使我注册了我的自定义模板加载器,它也会求助于 FreeMarkerComponent 来加载模板,当然它不知道我的数据库。
这是我遇到的错误
freemarker.template.TemplateNotFoundException: Template not found for name "db:test-spot".
The name was interpreted by this TemplateLoader: org.apache.camel.component.freemarker.FreemarkerComponent$1@3dbbfc3a.
我已经尝试了网络上的大部分资源。所有这些东西都可以很好地隔离,但是用于 Freemarker 的 Apache Camel + FreeeMarker + 自定义模板加载器无法正常工作。
如果有人能指出正确的方向,我将不胜感激。
【问题讨论】:
-
也许你应该在源代码中检查 Camel 如何获取
Template来执行。也许它不使用Configuration.getTemplate,所以TemplateLoader永远不会涉及。
标签: java spring-boot apache-camel freemarker