我有一个camel-rest路由,它在适当的操作之后生成/使用json。现在,我希望使用FTL创建json响应,但我无法做到这一点。
这是我的代码:
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.
尝试只使用freemarker和指向ftl的路径。像这样
freemarker:temp/ftls/camSearch.ftl
我认为正确的url需要双斜杠:
.to("freemarker:file://temp/ftls/camSearch.ftl")
即使最正确的是三斜杠。实际上,完整的语法是“file://host/path“”并且可以为localhost省略主机。这将导致您的情况为
"file:///temp/ftls/camSearch.ftl"
我正在使用Camel的RESTendpoint来实现HTTPendpoint。我想在响应上启用HTTP有效负载压缩,但还没有找到实现它的方法。如果我向路由中添加位,它确实会压缩有效负载,但我最终会得到一个压缩文件! 有人设法在Camel中实现HTTP压缩吗? 非常感谢。 美联社
如果这是个愚蠢的问题,请原谅。骆驼洞对我来说是新鲜事,所以我真的没有“全球视野”。我喜欢在camel安装中使用队列。我发现ActiveMQ是一个解决方案,然后偶然发现了两个不同的组件(或uri):ActiveMQ和JMS。 由于ActiveMQ正在实现JMS 1.1,使用这两种URI有什么区别?或者换句话说:我可以同时使用这两种方法吗?如果可以,在哪些情况下应该使用哪一种?
关于ApacheCamel的简短问题。我有以下场景,其中我的服务器接收jms消息,然后转换为csv文件,然后插入DB。为此,我有两个bean: xml2csv 我使用路由像: 当"路由"一个文件从-到,它是移动像一个消息?或者把问题放在不同的地方,ApacheCamel是否获取一个文件,将其包装为消息,并将其路由到bean或组件? 我的理解是正确的还是错误的。
目前,我正在使用camel-jetty来设置其余的DSL,这很简单,我创建一个SSLContextParameters对象,然后像这样传递它: 就是这样,但是在下面,没有任何方法可以做到这一点,文档中唯一提到的是它支持sslContextParameters选项,但没有方法或任何东西可以设置这样的选项。 如何将sslContextParameters对象分配给Undertow组件,以便可以使用与其
我正在用Spring boot为Camel编写一个测试。下面是测试类的配置 我认为骆驼不应该被启动。但当我运行测试时,它已经开始了。 我注意到CamelSpringBootRunner确实在CamelSpringBootExecutionListener中启动了camel上下文。 如何强制不启动骆驼上下文。
我不知道如何用ApacheCamel 3测试endpointrest。你能帮助我吗? 这是我的代码。散集一个xml到pojo,然后pojo到json并将其发送到外部服务“my.applications.url”。我需要模拟外部响应。我该怎么做?