Thanks for the update, Joselito!

On Tue, Aug 30, 2011 at 2:45 AM, Joselito Lobo <[email protected]> wrote:
> Hi Folks,
>
> I found the cause of the problem.
> Nothing related to Wicket session persistence.
>
> When session persistence is configured in tomcat context.xml files
> the persisted session will be deserialized in a Classloader where
> the WEB-INF/lib or WEB-INF/classes are not available, only if you put the
> necessary jars
> in the tomcat shared-libs folder or if the instances stored in the web
> session are from
> java core, like the wrappers (java.lang etc).
>
> Since Wicket makes use of  web session putting in it specific classes
> of the framework, which are only available at WEB-INF/lib, the
> ClassNotFoundException
> happens.
>
> The solution is configure the session manager in the application specific
> context.xml file.
> Only like this you have the guarantee that the classes in WEB-INF/lib and
> WEB-INF/classes
> are available.
>
> cheers,
> Joselito.
>
>
> 2011/8/29 Joselito Lobo <[email protected]>
>
>> Hello guys,
>>
>> I'm running a wicket application with Tomcat 6 and I'm having problems with
>> Tomcat session persistence across restarts.
>>
>> More specifically, apparently the session is persisted normally but just 1
>> minute later,
>> when the server is trying to deserialize the session persisted, I got the
>> following exception:
>>
>> java.lang.ClassNotFoundException:
>> org.apache.wicket.protocol.http.SecondLevelCacheSessionStore$SecondLevelCachePageMap
>>  at
>> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1645)
>> at
>> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1491)
>>  at java.lang.Class.forName0(Native Method)
>> at java.lang.Class.forName(Class.java:247)
>>  at
>> org.apache.catalina.util.CustomObjectInputStream.resolveClass(CustomObjectInputStream.java:75)
>> at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1574)
>>  at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1495)
>> at
>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1731)
>>  at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
>> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350)
>>  at
>> org.apache.catalina.session.StandardSession.readObject(StandardSession.java:1475)
>> at
>> org.apache.catalina.session.StandardSession.readObjectData(StandardSession.java:977)
>>  at org.apache.catalina.session.FileStore.load(FileStore.java:296)
>> at org.apache.catalina.session.StoreBase.processExpires(StoreBase.java:195)
>>  at
>> org.apache.catalina.session.PersistentManagerBase.processExpires(PersistentManagerBase.java:563)
>> at
>> org.apache.catalina.session.ManagerBase.backgroundProcess(ManagerBase.java:685)
>>  at
>> org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1316)
>> at
>> org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1601)
>>  at
>> org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1610)
>> at
>> org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1610)
>>  at
>> org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1590)
>> at java.lang.Thread.run(Thread.java:662)
>>
>>
>> Here is the configuration of the Tomcat session persistence, I'm using
>> FileStore.
>>
>> <Manager className='org.apache.catalina.session.PersistentManager'
>> saveOnRestart='true'
>> maxActiveSessions='-1'
>> minIdleSwap='0'
>> maxIdleSwap='60'
>> maxIdleBackup='0'>
>> <Store className='org.apache.catalina.session.FileStore'
>> directory='/home/tomcat/persistence' />
>> </Manager>
>>
>>
>> The two solutions I have found googling this I cant use:
>>
>> - Disabling tomcat persistence  :   I can't because of my deployment
>> environment, tomcat under loadbalancers (pound)
>> - Put wicket libs in the shared-libs of Tomcat: it's not a solution
>>
>>
>> Has anyone dealed with a problem like this?
>>
>> cheers,
>>
>> Joselito.
>>
>



-- 
Martin Grigorov
jWeekend
Training, Consulting, Development
http://jWeekend.com

Reply via email to