tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martin Grotzke <>
Subject Re: Why cant the the classes (in the jars) places in Tomcat/lib see the classes from the webapp/WEB-INF/lib.
Date Thu, 20 Jan 2011 09:24:36 GMT


I just got pinged by Reinwald (we're already on contact via email) regarding
this issue. I created the memcached-session-manager ( ) for which Reinwald is
trying to create a custom serializer/transcoder (memcached-session-manager,
msm, basically additionally uses memcached as additional session backup
store where session can be loaded from in the case of a tomcat/hardware

I just signed up here on nabble to be able to get into the thread, therefore
quoting is not that good / I'm top posting.

Now let me try to clarify how msm works regarding

It is a Manager which is configured as usual via context.xml/server.xml. It
supports standard java serialization but also other pluggable serializers
like e.g. kryo (faster than java serialization). For kryo the manager
configuration accepts custom serializer class names. The basic kryo
serializer and the specified custom serializers are loaded during
Manager.init like this:

ClassLoader cl = manager.getContainer().getLoader().getClassLoader()
Class.forName( customSerializerClassName, true, cl )

The msm jar is placed in tomcat's lib dir, the kryo serializer jar, required
kryo jar (and friends) and all application related jars are living in the
webapps WEB-INF/lib directory.

This works, there's also a sample app on github ( ) with a runtime directory
containing a tomcat installation and a sample webapp (linked in webapps,
available after building the war).

@Reinwald: I assume you're trying to get kryo custom serializers up and
running, right? Have you placed kryo jars, msm-kryo-serializer jar and your
custom serializer jar / classes in your WEB-INF/lib directory?


Christopher Schultz-2 wrote:
> Hash: SHA1
> Mark,
> On 1/19/2011 2:27 PM, Reinwald Warapen wrote:
>> On 1/20/2011 12:47 AM, Mark Thomas wrote:
>>> On 19/01/2011 19:17, Reinwald Warapen wrote:
>>>> I am writing a serializer/deserializer functionality (used in my custom
>>>> session manager that extends ManagerBase). When deserializing I get
>>>> loads of java.lang.ClassNotFoundException: exceptions. All the classes
>>>> for which the exceptions are thrown can be found in my
>>>> webapp/WEB-INF/classes. How do I configure it such that the
>>>> webapp/WEB-INF/classes are visible to the libs placed in Tomcat/lib.?
>> I did go through this before posting here. Its mentioned "All unpacked
>> classes and resources in |$CATALINA_HOME/lib|, as well as classes and
>> resources in JAR files are made visible through this class loader". But
>> theres no mention about the visibility of the webapp/WEB-INF/classes to
>> the classes in |$CATALINA_HOME/lib.So is there no way to configure the
>> same?
> Pretty much no.
> Tomcat can deserialize your webapp's sessions after a redeploy because
> it uses the webapp's ClassLoader to resolve everything. In your case,
> you have no way to get to the webapp's ClassLoader so you are pretty
> much stuck.
> What kind of serialization/deserialization are you writing? Why is this
> running at the Tomcat level instead of within your webapp?
> - -chris
> Version: GnuPG v1.4.10 (MingW32)
> Comment: Using GnuPG with Mozilla -
> iEYEARECAAYFAk03a0wACgkQ9CaO5/Lv0PBikgCfYuyPaY/XyqkiPJP7MtqVsSCW
> PkYAmgP7lRbxvV7ilDeKTV4BJwQKEmui
> =dkUe
> ---------------------------------------------------------------------
> To unsubscribe, e-mail:
> For additional commands, e-mail:

View this message in context:
Sent from the Tomcat - User mailing list archive at

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message