Репликация сеанса уровня Jboss 5.x ATTRIBUTE вызывает исключение NullPointerException - PullRequest
0 голосов
/ 31 мая 2019

У меня есть веб-приложение на основе JSF, развернутое на сервере EAP Jboss 5.1.Включил распространяемый тег для репликации сеанса на двух узлах jboss с веб-сервером Apache для функции аварийного переключения, и моя компания требует репликации на уровне атрибутов, но система выдает исключение NullPointerException.

"Не удалось реплицировать сеанс java.lang.NullPointerException"

Среда:

jboss-eap-5.1

jboss-web.xml:

<replication-granularity>ATTRIBUTE</replication-granularity>

web.xml:

<distributable/>

Ожидается: сеанс должен быть реплицирован без NPE.

Факт: не удалось реплицировать сеанс 9jYCBgKn2mIIVS2g8EzEzQ __. XXXX

Failed to replicate session 9jYCBgKn2mIIVS2g8EzEzQ__.XXXX
java.lang.NullPointerException
        at org.jboss.web.tomcat.service.session.distributedcache.impl.jbc.AbstractJBossCacheService.getMarshalledValue(AbstractJBossCacheService.java:679)
        at org.jboss.web.tomcat.service.session.distributedcache.impl.jbc.AttributeBasedJBossCacheService.storeSessionAttributes(AttributeBasedJBossCacheService.java:185)
        at org.jboss.web.tomcat.service.session.distributedcache.impl.jbc.AttributeBasedJBossCacheService.storeSessionAttributes(AttributeBasedJBossCacheService.java:40)
        at org.jboss.web.tomcat.service.session.distributedcache.impl.jbc.AbstractJBossCacheService.storeSessionData(AbstractJBossCacheService.java:402)
        at org.jboss.web.tomcat.service.session.ClusteredSession.processSessionReplication(ClusteredSession.java:1192)
        at org.jboss.web.tomcat.service.session.JBossCacheManager.processSessionRepl(JBossCacheManager.java:2221)
        at org.jboss.web.tomcat.service.session.JBossCacheManager.storeSession(JBossCacheManager.java:321)
        at org.jboss.web.tomcat.service.session.InstantSnapshotManager.snapshot(InstantSnapshotManager.java:51)
        at org.jboss.web.tomcat.service.session.ClusteredSessionValve.handleRequest(ClusteredSessionValve.java:147)
        at org.jboss.web.tomcat.service.session.ClusteredSessionValve.invoke(ClusteredSessionValve.java:94)
        at org.jboss.web.tomcat.service.session.JvmRouteValve.invoke(JvmRouteValve.java:88)
        at org.jboss.web.tomcat.service.session.LockingValve.invoke(LockingValve.java:62)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
        at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:95)
        at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
        at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:567)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:451)
        at java.lang.Thread.run(Thread.java:682)

Подробности отладки:

Я отладил приложение и обнаружил, что одно из значений атрибута равно нулю.

Вот строка бросков NPE:

org.jboss.web.tomcat.service.session.distributedcache.impl.jbc.AbstractJBossCacheService.class (Line no: 679)

if(MarshalledValueHelper.isTypeExcluded(value.getClass())) {
    return value;               
}

Пожалуйста, дайте мне знать, если вам нужно больше деталей.Кроме того, я пытаюсь воспроизвести проблему с примером приложения, но не смог сделать.Пожалуйста, предоставьте несколько предложений.

Спасибо, Логанатан

...