Caldarale, Charles R escreveu:
From: Caldarale, Charles R
Subject: RE: Session lost when app. is redeployed
I've finally been able to reproduce your observations, but only by
touching the .war file itself.
There is a workaround to this problem. Create a META-INF/context.xml file in
your webapp, with the following content:
<Context>
<Manager pathname="${catalina.base}/sessions/example.ser"/>
</Context>
(plus whatever else you already have in any existing <Context> element, of
course).
This will tell the session manager to store the serialized session data for
this webapp in sessions/example.ser; you can set the path to whatever you want,
but all directories in the path must exist prior to redeploying the webapp. By
keeping the session data outside of the webapp's work area, the redeployment
process will not delete it.
Unfortunately, that shows another problem with my real application. When
I touch the war. The session is deserialized before full war is
unpacked. Stack trace is below, and my WEB-INF has only lib (no
classes), and WEB-INF/lib has only some jars, not all. If I set
unpackWARs to false, it apparently works ok.
=================
27/03/2009 09:03:14 org.apache.catalina.startup.HostConfig checkResources
INFO: Undeploying context [/Sistema]
27/03/2009 09:03:16 org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive Sistema.war
27/03/2009 09:03:17 org.apache.catalina.session.StandardManager start
SEVERE: Exception loading sessions from persistent storage
java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
at org.apache.wicket.Application.<clinit>(Application.java:143)
at
org.apache.wicket.protocol.http.SecondLevelCacheSessionStore$SecondLevelCachePageMap.getPageStore(SecondLevelCacheSessionStore.java:205)
at
org.apache.wicket.protocol.http.SecondLevelCacheSessionStore$SecondLevelCachePageMap.readObject(SecondLevelCacheSessionStore.java:408)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
at
org.apache.catalina.session.StandardSession.readObject(StandardSession.java:1441)
at
org.apache.catalina.session.StandardSession.readObjectData(StandardSession.java:942)
at
org.apache.catalina.session.StandardManager.doLoad(StandardManager.java:394)
at
org.apache.catalina.session.StandardManager.load(StandardManager.java:321)
at
org.apache.catalina.session.StandardManager.start(StandardManager.java:637)
at
org.apache.catalina.core.StandardContext.start(StandardContext.java:4351)
at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:830)
at
org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:719)
at
org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:490)
at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1217)
at
org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:293)
at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at
org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1337)
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.run(ContainerBase.java:1590)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
... 32 more
=================
Adriano
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org