如何启用 Wildfly 10 InMemorySessionManager?

How to enable Wildfly 10 InMemorySessionManager?

我正在使用 Widlfy 10,但不想使用 Wildfly 开箱即用的 DistributableSessions(我遇到了一些会话处理问题,需要在基本级别进行调试)。我看到 Undertow 有一个 InMemorySessionManager ,我宁愿使用它。但是我还没弄清楚如何指定一个不同的 SessionManager。

我尝试将我的 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

是否可以改为启用 Undertwo 的 InMemorySessionManager?我是否必须努力创建自己的 ServletExtension 和 Factory 并在 META-INF/services/io.undertow.servlet.ServletExtension 中配置它,或者是否有一种开箱即用的方式来启用已经存在的功能配置文件?或者所需的 类 是否已作为 Undertow/Wildfly 包装的一部分存在?

只有条件导致使用分布式会话管理器:

  1. 在 web.xml
  2. 通过 shared-session-config.xml
  3. 在耳朵内跨 Web 应用程序使用共享会话

鉴于您已经声明#1 不是这种情况,我假设#2。要禁用共享会话的分布式会话管理器,请从您的分发中删除 org.wildfly.clustering.web.undertow 模块。