Tomcat не может провести сеанс только с первой попытки - PullRequest
0 голосов
/ 16 июня 2020

У меня есть проект с tomcat 9, java 8, jsf 2.2.13 и primefaces 4. Когда я запускаю tomcat и вхожу в приложение, сразу после загрузки страницы индекса сервер закрывает сеанс, и мне нужно снова войти в систему . Но это происходит только один раз (каждая первая попытка после запуска сервера), после этого проблема больше не возникает. Журнал:

Cannot serialize session attribute [myBean] for session [XXX]
java.io.NotSerializableException: org.springframework.web.context.support.XmlWebApplicationContext
    at java.io.ObjectOutputStream.writeObject0(Unknown Source)
    at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
    at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
    at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
    at java.io.ObjectOutputStream.writeObject0(Unknown Source)
    at java.io.ObjectOutputStream.writeObject(Unknown Source)
    at org.apache.catalina.session.StandardSession.doWriteObject(StandardSession.java:1712)
    at org.apache.catalina.session.StandardSession.writeObjectData(StandardSession.java:1066)
    at org.apache.catalina.session.StandardManager.doUnload(StandardManager.java:315)
    at org.apache.catalina.session.StandardManager.unload(StandardManager.java:267)
    at org.apache.catalina.session.StandardManager.stopInternal(StandardManager.java:382)
    at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:257)
    at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5397)
    at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:257)
    at org.apache.catalina.core.StandardContext.reload(StandardContext.java:3756)
    at org.apache.catalina.loader.WebappLoader.backgroundProcess(WebappLoader.java:299)
    at org.apache.catalina.core.StandardContext.backgroundProcess(StandardContext.java:5535)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1353)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1357)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1357)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1335)
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
    at java.util.concurrent.FutureTask.runAndReset(Unknown Source)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(Unknown Source)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Unknown Source)

Единственные два атрибута, которые явно не реализуют Serializable: org.springframework.context.ApplicationContext и org.primefaces.model.menu.MenuModel

AopTestUtils.getUltimateTargetObject всегда возвращает действительный Serializable.

Объявление компонента:

@ManagedBean(name = "myBean")
@Controller
@Scope(value = "session")
public class MyBean implements Serializable {
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...