2017-12-19 35 views
0

私はWidlfy 10を使用していますが、Wildflyが使用しているDistributableSessionsを使用したくないです(セッション処理の問題があり、基本レベルでデバッグする必要があります)。私はUndertowにはInMemorySessionManagerがあることがわかりましたが、代わりに代わりに使用します。しかし、私は別のSessionManagerを指定する方法を見つけることができませんでした。Wildfly 10 InMemorySessionManagerを有効にするにはどうすればよいですか?

私はローカルキャッシュとして私Wildflyキャッシュを設定しようとしました:

 <subsystem xmlns="urn:jboss:domain:infinispan:4.0"> 
      <cache-container name="server" aliases="singleton cluster" default-cache="default" module="org.wildfly.clustering.server"> 
       <transport lock-timeout="60000"/> 
       <replicated-cache name="default" mode="SYNC"> 
        <transaction mode="BATCH"/> 
       </replicated-cache> 
      </cache-container> 
      <cache-container name="web" default-cache="passivation" module="org.wildfly.clustering.web.infinispan"> 
       <local-cache name="passivation"> 
        <locking isolation="REPEATABLE_READ"/> 
        <transaction mode="BATCH"/> 
        <file-store passivation="true" purge="false"/> 
       </local-cache> 
       <local-cache name="persistent"> 
        <locking isolation="REPEATABLE_READ"/> 
        <transaction mode="BATCH"/> 
        <file-store passivation="false" purge="false"/> 
       </local-cache> 
      </cache-container> 
... 
... 

はしかし、私のアプリケーションをデバッグするには、私はまだWildflyではなくDistributableSessionManagerDistributableSession Sを使用していることがわかります。

代わりにUndertwoのInMemorySessionManagerを有効にする方法はありますか?私自身のServletExtensionとFactoryを作成し、それをMETA-INF/services/io.undertow.servlet.ServletExtensionで設定する努力を払わなければならないのでしょうか、すでに使用可能になっているconfigファイル経由で存在しますか?または、Undertow/Wildflyパッケージングの一部として必要なクラスが既に存在していますか?

+0

あなたのアプリケーションは ' 'とマークされていますか? –

+0

@FedericoSierraいいえ - 少なくともweb.xmlにはありません。だから私はそれがとても奇妙だと思うのです。 Wildflyに、すべての展開を配布可能にするという設定がありますか? –

+0

私には奇妙です、テスト目的のために、Webキャッシュコンテナを削除してみてください。 –

答えて

2

分散セッションマネージャの使用につながる唯一の条件があります。

web.xmlの
  1. 耳内のWebアプリケーション間で共有セッションを使用して
  2. 、共有セッション-config.xmlを介しました

すでに#1に該当しないと言われているので、私は#2と仮定します。共有セッションのために分散セッションマネージャを使用不可にするには、ディストリビューションからorg.wildfly.clustering.web.undertowモジュールを削除します。

+0

実際、私は共有セッションを使って2回の戦争でセッション共有を行っています。私はそれがDistributedSessionsを強制/暗示することを認識しませんでした。私の問題の根本は、Undertow SessionManagerを使ってIDでセッションを取得して無効にしようとしていることですが、DistributedSessionsでセッションを取得できません(SessionManagerはImmutableDistributedSessionを返します)。セッションマネージャまたはアンダートウセッションから返された分散セッションを無効にする方法はありますか? –

+0

なぜSessionManager経由でセッションを無効にするのですか? HttpSession.invalidate()を呼び出すことはできますか? –

+0

私は従来のJBoss3/JB4アプリケーションで作業していましたが、これは元々はバックグラウンドプロセスを使用して一連のビジネスルールに基づいてセッションを無効にすることでした。それをWF10に移動すると、同じセッション管理ができなくなります。だから、私はこれらのバックグラウンド・プロセスをすべて切り取って、ビジネス・ロジック・ヘルパー・クラスに基づいたフィルタにセッション無効化を移しました。だからこの時点で問題は疑問になる。 –

関連する問題