Infinispan NotSerializableException при раскрутке WAR в Wildfly 16 - PullRequest
0 голосов
/ 22 мая 2019

Я пытаюсь запустить свое приложение на 2 узлах Wildfly 16, работающих в автономном режиме с использованием конфигурации standalone-full-ha.xml.Когда запускается 2-й узел, первый пытается распределить / сбалансировать кэш web по умолчанию для нового узла.

Когда это происходит, в журнале на первом узле появляется следующее сообщение об ошибке:и 2-й узел не запускается:

13:45:48,487 ERROR [org.infinispan.remoting.rpc.RpcManagerImpl] (transport-thread--p18-t8) ISPN000073: Unexpected error while replicating: org.infinispan.commons.marshall.NotSerializableException: org.wildfly.transaction.client.ContextTransactionManager
Caused by: an exception which occurred:
    in field com.arjuna.ats.jta.cdi.transactional.TransactionalInterceptorBase.transactionManager
    in object com.arjuna.ats.jta.cdi.transactional.TransactionalInterceptorRequired@73962bdb
    in field org.jboss.weld.contexts.SerializableContextualInstanceImpl.instance
    in object org.jboss.weld.contexts.SerializableContextualInstanceImpl@333ebcb5
    in object org.jboss.weld.contexts.SerializableContextualInstanceImpl@333ebcb5
    in field java.util.Collections$SynchronizedCollection.c
    in object java.util.Collections$SynchronizedList@333ebcd4
    in field org.jboss.weld.contexts.CreationalContextImpl.dependentInstances
    in object org.jboss.weld.contexts.CreationalContextImpl@4dc7055b
    in field org.jboss.weld.contexts.SerializableContextualInstanceImpl.creationalContext
    in object org.jboss.weld.contexts.SerializableContextualInstanceImpl@57504e37
    in object org.jboss.weld.contexts.SerializableContextualInstanceImpl@57504e37

13:45:50,718 ERROR [org.infinispan.statetransfer.OutboundTransferTask] (transport-thread--p18-t8) Failed to send entries to node node2: org.wildfly.transaction.client.ContextTransactionManager: org.infinispan.commons.marshall.NotSerializableException: org.wildfly.transaction.client.ContextTransactionManager
Caused by: an exception which occurred:
    in field com.arjuna.ats.jta.cdi.transactional.TransactionalInterceptorBase.transactionManager
    in object com.arjuna.ats.jta.cdi.transactional.TransactionalInterceptorRequired@73962bdb
    in field org.jboss.weld.contexts.SerializableContextualInstanceImpl.instance
    in object org.jboss.weld.contexts.SerializableContextualInstanceImpl@333ebcb5
    in object org.jboss.weld.contexts.SerializableContextualInstanceImpl@333ebcb5
    in field java.util.Collections$SynchronizedCollection.c
    in object java.util.Collections$SynchronizedList@333ebcd4
    in field org.jboss.weld.contexts.CreationalContextImpl.dependentInstances
    in object org.jboss.weld.contexts.CreationalContextImpl@4dc7055b
    in field org.jboss.weld.contexts.SerializableContextualInstanceImpl.creationalContext
    in object org.jboss.weld.contexts.SerializableContextualInstanceImpl@57504e37
    in object org.jboss.weld.contexts.SerializableContextualInstanceImpl@57504e37

Некоторые другие вещи, на которые следует обратить внимание:

  • Сбой при запуске одного из моих WAR, который распространяется внутри EAR, но недругие 2 WAR, которые также развернуты в EAR
  • My web.xml, помечены как <distributable/> для всех 3 WAR
  • Мои другие кэши, кажется, прекрасно воспроизводятся

Кажется, я не могу понять, где используется ContextTransactionManager или почему он может быть сериализован в кеш сессии.Я предполагаю, что это может быть где-то в моем коде, но я не могу понять, где даже начать искать.Будем благодарны за любую помощь!

Обновление (28/05/2019): Вот пара скриншотов из консоли управления, показывающая 2 сессии, которые создаются при запуске (мы используем JSP в нашемвеб-приложение, и у нас есть служба запуска, которая запускается для предварительной компиляции всех файлов JSP):

Session 1 Session 2

1 Ответ

0 голосов
/ 30 мая 2019

Обновление: В конце концов, это оказалось действительно простой и несколько глупой проблемой.Мы пометили метод в классе LoggedInUser с помощью аннотации @ javax.transaction.Transactional, который не был необходим в первую очередь, но вызывал проблему с сериализацией.

Просто хотел опубликовать обновление вна случай, если кто-нибудь еще столкнется с чем-то похожим.

...