0

DeferredResponse オブジェクトを使用した非同期呼び出しを含む Tomcat 7 Web アプリケーションに取り組んでいます。

クラスターでのセッション共有のために 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>

私が探しているのは、テラコッタ セッション バルブを構成して非同期要求をサポートする方法です。

4

2 に答える 2

1

私は似たような問題を抱えていました。タグ Valve にパラメータ asyncSupported="true" を追加してみてください。私の場合、それはうまくいきました。

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

于 2013-10-03T09:37:50.063 に答える
0

tomcat-redis-session-manager-1.2-tomcat-7-1.2.jar を使用している場合は conf サポート 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" />
于 2015-05-28T09:10:07.097 に答える