Я пытаюсь заставить сеанс Tomcat работать при перезапуске сервера, но он не загружает десериализованные классы, которые фактически доступны в веб-приложении.
Я установил <Manager pathname="/tmp/sessions">
в conf/context.xml
, чтофактически работает при повторном развертывании или перезагрузке одного и того же веб-приложения (без выключения), но когда мне нужно перезапустить сервер (bin / shutdown.sh и bin / startup.sh), я получаю ClassNotFoundException
для моей сущности User, которая являетсяСериализуемый класс, содержащийся в веб-приложении.
09-Feb-2019 13:30:53.592 SCHWERWIEGEND [localhost-startStop-1] org.apache.catalina.session.StandardManager.startInternal Exception loading sessions from persistent storage
java.lang.ClassNotFoundException: de.company.model.User
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1285)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1119)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at org.apache.catalina.util.CustomObjectInputStream.resolveClass(CustomObjectInputStream.java:160)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1819)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1713)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1986)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1535)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:422)
at org.apache.catalina.session.StandardSession.doReadObject(StandardSession.java:1611)
at org.apache.catalina.session.StandardSession.readObjectData(StandardSession.java:1077)
at org.apache.catalina.session.StandardManager.doLoad(StandardManager.java:218)
at org.apache.catalina.session.StandardManager.load(StandardManager.java:162)
at org.apache.catalina.session.StandardManager.startInternal(StandardManager.java:356)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5206)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:752)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:728)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:596)
at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1805)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Таким образом, он не загружает сериализованные классы, когда это исключение возникает при перезапуске, но при повторном развертывании.