I'm trying to use PersistentManager with FileStore to load sessions from disk. Serialization goes ok but when the session is loaded I get an exception deserializing one of my application's classes.
[2020-05-12 09:08:52] [SEVERE] Session: 6325A48BA1D2FC79105C7F4B0A76CB74.worker1; java.lang.ClassNotFoundException: com.mycompany.MyClass at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1365) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1188) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:348) at org.apache.catalina.util.CustomObjectInputStream.resolveClass(CustomObjectInputStream.java:159) at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1620) at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1521) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1781) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1353) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:373) at org.apache.catalina.session.StandardSession.doReadObject(StandardSession.java:1576) at org.apache.catalina.session.StandardSession.readObjectData(StandardSession.java:1048) at org.apache.catalina.session.FileStore.load(FileStore.java:234) Looking into the classpath when the exception occurs I see that every jar in ${catalina.base}/lib is loaded plus those explicitly mentioned in the run command, but none of my application's jars. My application is deployed in ${catalina.base}/myapp/. I tried to add a ${catalina.base}/myapp/ META-INF/context.xml file, but that wasn't loaded. Then I tried to add <Resources> <JarResources className="org.apache.catalina.webresources.JarResourceSet" base="${catalina.base}/mycompany/WEB-INF/lib/my.jar" webAppMount="/" /> </Resources> to context.xml but that didn't help either. It makes sense that Tomcat is separating my application from the rest of the classpath but then how do I include the required class?