Hi Johan
Two JSESSIONID values does look odd. I've seen problems like this when
another server running a Java J2EE servlet container incorrectly had its
JSESSIONID cookie scope set to the whole domain, rather than scoped to the
server and application. In my case it was a SAP web server, and the session
ID value was readily recognisable, and quite different to Tomcat values.
That may also explain the Linux/Windows difference if your development boxes
are on Windows and the production/test boxes are on Linux.
Regards
Ron
----- Original Message -----
From: "Johan Thorselius" <johan.thorsel...@gmail.com>
To: "Tomcat Users List" <users@tomcat.apache.org>
Sent: Tuesday, December 22, 2009 11:38 PM
Subject: Re: Http session lost b/w struts actions on Linux but not in Win
I here add some info from Firebug which may be significant.
'GET localhost:8080/wap-app/start.action':
CookieJSESSIONID=9726CDF4A527E3D98451140AB69EFA2C;
JSESSIONID=BEED739340DDD4370C85A9D12917692A
'GET localhost:8080/webdav/images/.../1px.gif':
Cookie JSESSIONID=BEED739340DDD4370C85A9D12917692A
Johan
2009/12/22 Johan Thorselius <johan.thorsel...@gmail.com>
The issue now boils down to the following a bit strange thing. Any idea
why
this happens ?
- request.getSession() returns an incorrect null on Linux, but on Windows
it's OK - under the following circumstances:
When using Firebug on Firefox I noted that a corporate common .css
references a 1-pixel gif which is not present and visible, hence there is
a
'404 Not found' error for the 'GET
localhost:8080/webdav/images/.../1px.gif'. But the preceding 'GET
localhost:8080/wap-app/start.action' is fine.
In my myValve-class on Linux:
'GET localhost:8080/wap-app/start.action' => myValve.invoke() ...
request.getSession() returns a correct session object
'GET localhost:8080/webdav/images/.../1px.gif' => myValve.invoke() ...
request.getSession() and request.getSession(true) both returns null
Same code and same build, in my myValve-class on Windows:
Both GET => myValve.invoke() ... request.getSession() returns a correct
session object
The webapp is built with Struts2/Spring.
Both Linux and Windows uses Tomcat 6.0.20.
On Windows Java version 1.6.0_16 is used
On RedHat Linux Java version 1.6.0_13 is used
and..
>> In the "log incorrect event" code, do you return
>> from the valve, or do you continue processing?
The execution continues down to the bottom with
'getNext().invoke(req,resp)'
Johan
2009/12/17 Christopher Schultz <ch...@christopherschultz.net>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Johan,
On 12/17/2009 7:52 AM, Johan Thorselius wrote:
> request.getSession() returns an incorrect null on Linux, but on
> Windows
it's
> OK.
That's odd... request.getSession() should never return null. This
method:
"
Returns the current session associated with this request, or if the
request does not have a session, creates one.
"
> I have an ordinary Struts2 web app deployed on Tomcat 6.0.20, together
with
> a JAAS-solution where I have my own Valve class.
>
> The Valve repeatedly executes invoke() with the following code-snippet
(here
> very much simplified):
> .
> .
> .
> if (LOGGER.isDebugEnabled()) {
> if (request.getSession() == null) {
> // Log incorrect event (1)
> } else {
> // Log OK (2)
> }
> if (request.getSession(true) == null) {
> // Log incorrect event (3)
> } else {
> // Log OK (4)
> }
> }
>
> /*
> * Here a NullPointerException occurs
> */
> request.getSession().setAttribute("...",...);
In the "log incorrect event" code, do you return from the valve, or do
you continue processing?
> In the first request the session is not lost, everything is fine with
(2)
> and (4). In the following requests getSession() returns null (1) and
(3).
Are you storing the request object anywhere and perhaps using it after
it's been recycled?
- -chris
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iEYEARECAAYFAksqoSoACgkQ9CaO5/Lv0PDZ7QCfXwdUPAoU9EPxlEC64f11rlAa
+0oAoJG3hjVFYbeCvkrXQ14bkvlq9bJZ
=lF2t
-----END PGP SIGNATURE-----
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org