On 12/05/2020 18:38, Jonathan Yom-Tov wrote:
> 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.

That is as expected. You want to look at the WebappClassLoader instance.
Is that pointing to the right web application? If not, why not? Pay
particular attention to the state field.

> 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.

That is an odd location. Why not in webapps?

> Then I tried to add
> <Resources>
> 
>      <JarResources
> className="org.apache.catalina.webresources.JarResourceSet"
> base="${catalina.base}/mycompany/WEB-INF/lib/my.jar" webAppMount="/" />
> </Resources>

That should never be necessary.

> 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?

If the correct web application class loader is picked up, is should just
work.

Mark


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to