2013-07-03 69 views
0

我正在使用DeferredResponse對象來處理包含異步調用的Tomcat 7 Web應用程序。異步請求不能與Tomcat 7/Terracotta一起使用3.6

一切都很好,直到我們將兵馬俑引入羣集中的會話共享組合中。我現在在我們的卡塔利娜日誌得到這個:

java.lang.IllegalStateException: Async support must be enabled on a servlet and 
for all filters involved in async request processing. This is done in Java code 
using the Servlet API or by adding "<async-supported>true</async-supported>" to 
servlet and filter declarations in web.xml. 

我們已經使用了整個配置中的標籤,這已做的工作,右,直到TerracottaTomcat70xSessionValve閥被引入到Tomcat的context.xml配置:

<?xml version="1.0" encoding="UTF-8"?> 
<Context> 
    <Valve className="org.terracotta.session.TerracottaTomcat70xSessionValve" tcConfigUrl="[config-url]" /> 
</Context> 

我在尋找的是如何配置Terracotta Session Valve來支持異步請求?

回答

1

我有一個silimar問題。嘗試在標籤Valve中添加參數asyncSupported =「true」。在我的情況下,它已經奏效。

<Context> 
<Valve className="org.terracotta.session.TerracottaTomcat70xSessionValve" asyncSupported="true" tcConfigUrl="[config-url]" /> 

+0

我試過無濟於事,其中秦俑的版本,您使用的? – QueyJoh

0

如果使用Tomcat的Redis的會話管理器 - 1.2 Tomcat的7-1.2.jar 請修改的conf支持異步。

例如:

<Valve className="com.radiadesign.catalina.session.RedisSessionHandlerValve" asyncSupported="true" /> 
<Manager className="com.radiadesign.catalina.session.RedisSessionManager" 
     host="localhost" 
     port="6379" 
     database="0" 
     maxInactiveInterval="60" />