On 5/12/2020 at 7:45 PM, "Mark Thomas"  wrote: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
> 
> 
>       className="org.apache.catalina.webresources.JarResourceSet"
> base="${catalina.base}/mycompany/WEB-INF/lib/my.jar" webAppMount="/"
/>
> 

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