如何在OSGi中使用Servlet时禁用Camel HTTP端点流缓存

时间:2015-05-29 18:30:36

标签: apache-camel

我使用Apache Camel路由使用servlet组件接收传入的HTTP流量。路线很简单:

<camel:route id="peopleSoftServletService" errorHandlerRef="errorHandler">
  <camel:from uri="servlet:///PeopleSoftService" />
  <camel:setHeader headerName="origin">
    <camel:simple>PeopleSoft Server: ${in.header.X-Forwarded-For}</camel:simple>
  </camel:setHeader>
  <camel:inOnly uri="activemq:peoplesoft" />
</camel:route>

我遇到了流缓存问题。我没有明确地使用流缓存,但似乎通过使用servlet组件,在幕后隐式创建了Camel HTTPConsumer,并通过CamelServlet.connect(HttpConsumer使用者)向servlet注册。我想要做的是禁用该消费者的HTTP端点上的流缓存(默认情况下已打开),这通常使用URI参数(&#34; disableStreamCache&#34;)完成。由于在这种情况下我没有明确创建该端点,因此我不知道该怎么做。 servlet URI参数没有可用于自定义隐式端点。

这可以在Camel 2.10.0中完成吗?

1 个答案:

答案 0 :(得分:1)

如果要禁用Stream Caching,则需要将exchange属性设置为disable the stream caching,但是无法从HttpConsumer设置exchange属性,所以我只为它创建了一个JIRA很快就会提交一个快速修复程序,你可以自己重新安装补丁程序,因为我们不再提供camel 2.10.x的社区支持。