tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Reinwald Warapen <>
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 13:24:41 GMT
On 1/20/2011 2:54 PM, Martin Grotzke wrote:
> Hi,
> 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
> crash).
> 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
> serialization/classloading.
> 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?
> Cheers,
> Martin
@Martin :Actually I was trying to write my own Session Manager since i 
wanted to store the session into mysql. The issue was when deserializing 
Tomcat could not find the classes since the objects stored in the 
sessions are related to my web-app.
Reading the docs I found another solution which worked in my case

@ All : Also wanted to mentioned that the memcached-session-manager 
which Martin has created is an awesome idea if you want to back up 
sessions to memcache.
> 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
>> -----END PGP SIGNATURE-----
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail:
>> For additional commands, e-mail:

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

View raw message