首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >找不到Wildfly 17分布式Infinispan会话

找不到Wildfly 17分布式Infinispan会话
EN

Stack Overflow用户
提问于 2019-10-17 04:14:21
回答 1查看 456关注 0票数 0

我正在研究为会话配置wf 17的分布式缓存,但我有问题让它正常工作。这是一种分布式配置,我使用基本身份验证,当我们将post发送到/j_security_check时,它将发送到一个节点,而/index.html的get在身份验证成功完成后将发送到另一个节点。当请求到达第二个节点时,我有这样的异常:

代码语言:javascript
复制
2019-10-16 17:17:39,901 TRACE [org.wildfly.clustering.web.infinispan] (default task-9) Session _ttZ3PQsisp4qCdTlkY512jYoG02S3DiYgpDUGjJ not found  
2019-10-16 17:17:39,903 TRACE [org.wildfly.clustering.web.infinispan] (default task-9) Session _ttZ3PQsisp4qCdTlkY512jYoG02S3DiYgpDUGjJ not found  
2019-10-16 17:17:39,905 TRACE [org.wildfly.clustering.web.infinispan] (default task-9) Session _ttZ3PQsisp4qCdTlkY512jYoG02S3DiYgpDUGjJ not found  
2019-10-16 17:17:39,906 TRACE [org.wildfly.clustering.web.infinispan] (remote-thread--p17-t4) Session vjStKgUR6gnUne3KPr_v89S_37Dp-jc4eqNXZ1kk will be removed  
2019-10-16 17:17:39,907 TRACE [org.wildfly.clustering.web.infinispan] (default task-9) Session _ttZ3PQsisp4qCdTlkY512jYoG02S3DiYgpDUGjJ not found  
2019-10-16 17:17:39,965 ERROR [io.undertow.request] (default task-9) UT005023: Exception handling request to /index.html: java.lang.IllegalStateException: WFLYCLWEBUT0002: Session _ttZ3PQsisp4qCdTlkY512jYoG02S3DiYgpDUGjJ already exists  
        at org.wildfly.clustering.web.undertow.session.DistributableSessionManager.createSession(DistributableSessionManager.java:169)  
        at io.undertow.servlet.spec.ServletContextImpl.getSession(ServletContextImpl.java:918)  
        at io.undertow.servlet.spec.ServletContextImpl.getSession(ServletContextImpl.java:933)  
        at io.undertow.servlet.handlers.security.ServletFormAuthenticationMechanism.storeInitialLocation(ServletFormAuthenticationMechanism.java:175)  

我可以在发生/j_security_check post的另一台服务器上看到:

代码语言:javascript
复制
    contentLength=0  
       contentType=null  
            cookie=JSESSIONID=_ttZ3PQsisp4qCdTlkY512jYoG02S3DiYgpDUGjJ.staging-2:staging-2-wildfly; domain=null; path=/  
            header=Expires=0  
            header=Connection=close  
            header=Cache-Control=no-cache, no-store, must-revalidate  
            header=Set-Cookie=JSESSIONID="_ttZ3PQsisp4qCdTlkY512jYoG02S3DiYgpDUGjJ.staging-2:staging-2-wildfly"; Version=1; Path=/; Secure; HttpOnly  
            header=Pragma=no-cache  
            header=Location=....  
            header=Content-Length=0  
            header=Date=Wed, 16 Oct 2019 16:17:39 GMT  
            status=302  
2019-10-16 17:17:39,210 TRACE [org.wildfly.clustering.web.infinispan] (default task-10) Session _ttZ3PQsisp4qCdTlkY512jYoG02S3DiYgpDUGjJ will expire in 14401 sec  

我对inifinispan缓存的配置是:

代码语言:javascript
复制
                <cache-container name="web" default-cache="dist" module="org.wildfly.clustering.web.infinispan">
                    <transport lock-timeout="60000"/>
                    <distributed-cache name="dist" remote-timeout="17500" l1-lifespan="0" owners="2">
                        <locking acquire-timeout="60000" isolation="READ_COMMITTED"/>
                        <transaction locking="OPTIMISTIC" mode="BATCH"/>
                        <file-store/>
                    </distributed-cache>
                </cache-container>

只要会话被缓存在infinispan中,当请求最初到达第二个服务器时,怎么会找不到它,但当尝试创建它时,它会抱怨它已经存在?

另外,我尝试配置distributable-web:1.0wf子系统来使用上面提到的缓存,但输出是相同的。不确定是否需要,如果我在web.xml中有标记,它将是相同的“默认”可分发的web子系统,对吗?

一种不同的情况,我注意到了,但我不明白:

代码语言:javascript
复制
----------------------------REQUEST---------------------------  
               URI=/j_security_check  
             cookie=JSESSIONID=0Zb-sRk9GvM_NXxpOcS5SPifwCour07qm41kTujh.starscream:starscream-wildfly  
           method=POST  
--------------------------RESPONSE--------------------------  
            cookie=JSESSIONID=mUInjx6SmUXCXz9CJDN3IYVE8it9RGI9fMXYKTtI.starscream:starscream-wildfly; domain=null; path=/  
            status=302  
==============================================================  
2019-10-17 10:06:42,347 TRACE [org.wildfly.clustering.web.infinispan] (default task-59) Session mUInjx6SmUXCXz9CJDN3IYVE8it9RGI9fMXYKTtI will expire in 14401 sec  
2019-10-17 10:06:42,355 TRACE [org.wildfly.clustering.web.infinispan] (default task-72) Session mUInjx6SmUXCXz9CJDN3IYVE8it9RGI9fMXYKTtI not found  
2019-10-17 10:06:42,357 TRACE [org.wildfly.clustering.web.infinispan] (default task-72) Session mUInjx6SmUXCXz9CJDN3IYVE8it9RGI9fMXYKTtI not found  
2019-10-17 10:06:42,360 TRACE [org.wildfly.clustering.web.infinispan] (default task-72) Session mUInjx6SmUXCXz9CJDN3IYVE8it9RGI9fMXYKTtI not found  
2019-10-17 10:06:42,409 INFO  [io.undertow.request.dump] (default task-72)   
----------------------------REQUEST---------------------------  
               URI=/index.html  
            cookie=JSESSIONID=mUInjx6SmUXCXz9CJDN3IYVE8it9RGI9fMXYKTtI.starscream:starscream-wildfly  
            method=GET  
--------------------------RESPONSE--------------------------  
            status=200  
==============================================================  
2019-10-17 10:06:42,411 TRACE [org.wildfly.clustering.web.infinispan] (default task-72) Session mUInjx6SmUXCXz9CJDN3IYVE8it9RGI9fMXYKTtI will expire in 14400 sec  
2019-10-17 10:06:44,333 WARN  [org.springframework.web.servlet.PageNotFound] (default task-72) No mapping found for HTTP request with URI [/j_security_check] in DispatcherServlet with name 'dispatcher'  
2019-10-17 10:06:44,347 TRACE [org.wildfly.clustering.web.infinispan] (default task-72) Session mUInjx6SmUXCXz9CJDN3IYVE8it9RGI9fMXYKTtI will expire in 14401 sec  
2019-10-17 10:06:44,357 INFO  [io.undertow.request.dump] (default task-72)   
----------------------------REQUEST---------------------------  
               URI=/j_security_check  
            cookie=JSESSIONID=mUInjx6SmUXCXz9CJDN3IYVE8it9RGI9fMXYKTtI.starscream:starscream-wildfly  
            method=POST  
--------------------------RESPONSE--------------------------  
            status=404  

这发生在同一个节点上,我收到了上面会话的响应,不久之后就找不到会话了,最终收到了j_security_check的404。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-23 06:04:00

问题在于,重定向的请求试图在前一个请求完成提交之前读取会话。删除事务并锁定标记可以解决这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58421055

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档