Асинхронните заявки не работят с Tomcat 7 / Terracotta 3.6

Работя върху уеб приложение Tomcat 7, което включва асинхронно повикване с помощта на обект DeferredResponse.

Всичко беше наред, докато не въведохме Terracotta в микса за споделяне на сесии в нашия клъстер. Сега получавам това в нашите регистрационни файлове на Catalina:

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 да поддържа асинхронни заявки?


person QueyJoh    schedule 03.07.2013    source източник


Отговори (2)


Имах проблем със силимар. Опитайте да добавите параметър asyncSupported="true" в маркер Valve. В моя случай беше проработило.

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

person Greca    schedule 03.10.2013
comment
Опитах това без резултат, коя версия на Terracotta използвате? - person QueyJoh; 04.10.2013

Ако използвате tomcat-redis-session-manager-1.2-tomcat-7-1.2.jar Моля, променете conf support async.

пример:

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