You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Greg Ward <gw...@intelerad.com> on 2003/09/18 22:29:39 UTC

Disabling session management (FAQ not enough)

I would like to completely disable Tomcat session management.  I'm in
the process of porting a legacy app with homebrew session management
from JServ to Tomcat, and I want to keep using that homebrew session
management for the time being.  (I'm using Tomcat 4.1.24, JDK 1.4.0.)

Currently, Tomcat's StandardSessionManager is getting in the way; it

  * writes an empty (well, 81-byte) SESSIONS.ser for every webapp
    at shutdown

  * logs lots of stack traces at startup and shutdown, because the
    classes in that old session management scheme are not serializable
    (but they are accessible via the HttpSession objects)

So, of course I consulted the FAQ, which says this:

   Look at the Session manager component and tweak accordingly.

That sentence is actually a link to
http://jakarta.apache.org/tomcat/tomcat-4.1-doc/config/manager.html,
which has lots of information on how to configure StandardSessionManager
and PersistentSessionManager -- but nothing at all on completely
disabling Tomcat's session management.  Arggh.  My naive attempt was to
add this:

  <Manager pathname="/dev/null" />

to one of my <Context> elements, but that didn't work -- Java barfs
(EOFException) trying to read a serialized file from /dev/null.

Surely someone has written a dummy session manager class that does
nothing...

        Greg

Re: Disabling session management (FAQ not enough)

Posted by Greg Ward <gw...@intelerad.com>.
On 18 September 2003, I said:
> I would like to completely disable Tomcat session management.  I'm in
> the process of porting a legacy app with homebrew session management
> from JServ to Tomcat, and I want to keep using that homebrew session
> management for the time being.  (I'm using Tomcat 4.1.24, JDK 1.4.0.)

Oops, that should be Tomcat 4.1.27.  Apart from that everything holds.

        Greg

---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org


Re: Disabling session management (FAQ not enough)

Posted by Greg Ward <gw...@python.net>.
On 18 September 2003, Greg Ward said:
> Surely someone has written a dummy session manager class that does
> nothing...

OK, I took a crack at this.  My first attempt at DummySessionManager
looked like this:

import org.apache.catalina.Manager;


class DummySessionManager implements Manager
{
  public Container getContainer()
  {
      return null;
  }

  public void setContainer(Container container)
  {
  }

  public DefaultContext getDefaultContext()
  {
      return null;
  }

  [... you get the idea ...]

}

Never mind worrying about whether all those "return null" statements
will cause NullPointerExceptions later on; Tomcat can't even create
DummySessionManager objects.  (I put DummySessionManager.class in
server/classes so Tomcat could at least load it.)  "catalina.sh run"
dies with this exception:

java.lang.IllegalAccessException: Class org.apache.commons.digester.ObjectCreateRule can not access a member of class DummySessionManager with modifiers ""
        at org.apache.commons.digester.Digester.createSAXException(Digester.java:2540)
        at org.apache.commons.digester.Digester.createSAXException(Digester.java:2566)
        at org.apache.commons.digester.Digester.startElement(Digester.java:1276)
        at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
        at org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
        at org.apache.commons.digester.Digester.parse(Digester.java:1548)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:449)
        at org.apache.catalina.startup.Catalina.execute(Catalina.java:400)
        at org.apache.catalina.startup.Catalina.process(Catalina.java:180)
        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:324)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:203)

Arrggh.  Now what?  Do I have to add some magic to catalina.policy?
(Wild guess -- so far, I have remained happily ignorant of Java security
policy stuff.)

        Greg

---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org


Re: Disabling session management (FAQ not enough)

Posted by Greg Ward <gw...@intelerad.com>.
On 18 September 2003, I said:
> I would like to completely disable Tomcat session management.  I'm in
> the process of porting a legacy app with homebrew session management
> from JServ to Tomcat, and I want to keep using that homebrew session
> management for the time being.  (I'm using Tomcat 4.1.24, JDK 1.4.0.)

Oops, that should be Tomcat 4.1.27.  Apart from that everything holds.

        Greg

Re: Disabling session management (FAQ not enough)

Posted by Greg Ward <gw...@python.net>.
On 18 September 2003, Greg Ward said:
> Surely someone has written a dummy session manager class that does
> nothing...

OK, I took a crack at this.  My first attempt at DummySessionManager
looked like this:

import org.apache.catalina.Manager;


class DummySessionManager implements Manager
{
  public Container getContainer()
  {
      return null;
  }

  public void setContainer(Container container)
  {
  }

  public DefaultContext getDefaultContext()
  {
      return null;
  }

  [... you get the idea ...]

}

Never mind worrying about whether all those "return null" statements
will cause NullPointerExceptions later on; Tomcat can't even create
DummySessionManager objects.  (I put DummySessionManager.class in
server/classes so Tomcat could at least load it.)  "catalina.sh run"
dies with this exception:

java.lang.IllegalAccessException: Class org.apache.commons.digester.ObjectCreateRule can not access a member of class DummySessionManager with modifiers ""
        at org.apache.commons.digester.Digester.createSAXException(Digester.java:2540)
        at org.apache.commons.digester.Digester.createSAXException(Digester.java:2566)
        at org.apache.commons.digester.Digester.startElement(Digester.java:1276)
        at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
        at org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
        at org.apache.commons.digester.Digester.parse(Digester.java:1548)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:449)
        at org.apache.catalina.startup.Catalina.execute(Catalina.java:400)
        at org.apache.catalina.startup.Catalina.process(Catalina.java:180)
        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:324)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:203)

Arrggh.  Now what?  Do I have to add some magic to catalina.policy?
(Wild guess -- so far, I have remained happily ignorant of Java security
policy stuff.)

        Greg

Re: Disabling session management (FAQ not enough)

Posted by Greg Ward <gw...@python.net>.
On 20 September 2003, Chris Rolfe said:
> You might try: 
> 
> <Manager classname="org.apache.catalina.session.StandardManager"
>     pathname="" />

Yep, I eventually found that in the O'Reilly Tomcat book.  Turns out
"classname" isn't even necessary, so this is a
one-line-of-XML-per-context configuration change.

Thanks!

        Greg

Re: Disabling session management (FAQ not enough)

Posted by Greg Ward <gw...@python.net>.
On 20 September 2003, Chris Rolfe said:
> You might try: 
> 
> <Manager classname="org.apache.catalina.session.StandardManager"
>     pathname="" />

Yep, I eventually found that in the O'Reilly Tomcat book.  Turns out
"classname" isn't even necessary, so this is a
one-line-of-XML-per-context configuration change.

Thanks!

        Greg

---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org


Re: Disabling session management (FAQ not enough)

Posted by Chris Rolfe <sp...@telus.net>.
on 9/18/03 1:29 PM, Greg Ward wrote:

> I would like to completely disable Tomcat session management.  I'm in
> 
> <Manager pathname="/dev/null" />

You might try: 

<Manager classname="org.apache.catalina.session.StandardManager"
    pathname="" />

Cheers,
Chris


---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org


Re: Disabling session management (FAQ not enough)

Posted by Chris Rolfe <sp...@telus.net>.
on 9/18/03 1:29 PM, Greg Ward wrote:

> I would like to completely disable Tomcat session management.  I'm in
> 
> <Manager pathname="/dev/null" />

You might try: 

<Manager classname="org.apache.catalina.session.StandardManager"
    pathname="" />

Cheers,
Chris