Add some debugging code to your app to find the point where the Last-Modified header is added. Call HttpServletResponse.containsHeader to see if the header has been set. -- Len
On Fri, Dec 18, 2009 at 10:47, Abid Hussain <abid.huss...@dilax.com> wrote: > OK, it seems that tomcat is working correctly. > > Still I would like to get the root cause of my problem which is again: > The last-modified response header is delivered in the locale of the > server. E.g. if this locale is polish or germen, the header is delivered > in polish resp. german format which is not correct and causes > misbehaviour. > > Naturally I just can set the locale to en_US to get the desired header > format. But this is not the root cause of the problem. The question is: > How can the format of this header can be set (or overridden) to the > server's locale? > I tried the following: > * Asked Google: Nothing found. > * Searched for occurences of "last-modified" in the source code of my > application: Nothing found. > * Looked if the methods HttpServletResponse.setHeader() or > HttpServletResponse.addHeader() are used with the "last-modified" > somewhere in my application: Nothing found. > * Looked if one of the configured filters modify the header: Nothing > found. > * Looked if any valves are used: None. > > Anybody got an idea how I can investigate further? > > Regards, > > Abid > >> -----Ursprüngliche Nachricht----- >> Von: André Warnier [mailto:a...@ice-sa.com] >> Gesendet: Freitag, 18. Dezember 2009 13:56 >> An: Tomcat Users List >> Betreff: Re: AW: Re: AW: RE: RE: Ignore http header if-modified-since >> >> Mark Thomas wrote: >> > On 18/12/2009 09:36, André Warnier wrote: >> >> Christopher Schultz wrote: >> >>> -----BEGIN PGP SIGNED MESSAGE----- >> >>> Hash: SHA1 >> >>> >> >>> Abid, >> >>> >> >>> On 12/17/2009 12:08 PM, Abid Hussain wrote: >> >>>> I used the startup parameters >> >>>> -Duser.language=en >> >>>> -Duser.region=US >> >>>> This caused Tomcat to deliver the Last-Modified in the >> correct format. >> >>>> >> >>>> That solved the problem, no 404 anymore, thanks. >> >>>> So it seems to be a bug in tomcat...? >> >>> I would say so. >> >>> >> >>> http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1 >> >>> >> >>> Tomcat's behavior seems to ignore the specification, >> here. Would you >> >>> care to share your Tomcat version with us? >> > >> > So far, I haven't seen anything that demonstrates Tomcat is >> generating >> > this header. It looks like an app issue to me. My testing >> with trunk, >> > 6.0.x and 6.0.20 all show the correct format being used. >> > >> >> I think that once this is confirmed, it may be worth raising its >> >> visibility a bit for the Tomcat developers. >> > >> > As always before reporting an error, I'd highly recommend >> generating a >> > simple as possible test case that demonstrates the issue on a clean >> > Tomcat install. I can't repeat this and at the moment it >> looks like an >> > application issue. Any bug report that can't be repeated is >> just going >> > to get closed as WORKSFORME. >> > >> >> For a confirmation of what Mark says above, I ran some tests. >> >> This Tomcat 5.5 is a pretty vanilla version, with just the >> standard example apps and not much more, on my Windows workstation. >> Versions are not the latest ones, I know. >> >> INFO: Starting Servlet Engine: Apache Tomcat/5.5.26 Platform >> : Windows XP, German Java : >> java version "1.6.0_06" >> Java(TM) SE Runtime Environment (build 1.6.0_06-b02) Java >> HotSpot(TM) Client VM (build 10.0-b22, mixed mode, sharing) >> >> Tomcat running as service, stopped and restarted before each >> test below >> >> A) Platform default >> Tomcat startup parameters as per tomcat5w.exe : >> -Dcatalina.home=C:\Tomcat5.5 >> -Dcatalina.base=C:\Tomcat5.5 >> -Djava.endorsed.dirs=C:\Tomcat5.5\common\endorsed >> -Djava.io.tmpdir=C:\Tomcat5.5\temp >> -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager >> -Djava.util.logging.config.file=C:\Tomcat5.5\conf\logging.properties >> >> (platform default) >> >> Request: >> (Request-Line) GET /RELEASE-NOTES.txt HTTP/1.1 >> Host localhost:8180 >> User-Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; >> rv:1.9.1.3) >> Gecko/20090824 Firefox/3.5.3 >> Accept >> text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 >> Accept-Language en-gb,en;q=0.5 >> Accept-Encoding gzip,deflate >> Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7 >> Keep-Alive 300 >> Connection keep-alive >> If-Modified-Since Mon, 28 Jan 2008 20:38:54 GMT >> If-None-Match W/"7697-1201552734000" >> Cache-Control max-age=0 >> >> Response: >> (Status-Line) HTTP/1.1 304 Not Modified >> Server Apache-Coyote/1.1 >> Etag W/"7697-1201552734000" >> Date Fri, 18 Dec 2009 11:37:58 GMT >> >> B) Adding explicit "DE" startup parameters >> Tomcat startup parameters as per tomcat5w.exe : >> -Dcatalina.home=C:\Tomcat5.5 >> -Dcatalina.base=C:\Tomcat5.5 >> -Djava.endorsed.dirs=C:\Tomcat5.5\common\endorsed >> -Djava.io.tmpdir=C:\Tomcat5.5\temp >> -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager >> -Djava.util.logging.config.file=C:\Tomcat5.5\conf\logging.properties >> -Duser.language=de >> -Duser.region=DE >> >> Request : >> (Request-Line) GET /RELEASE-NOTES.txt HTTP/1.1 >> Host localhost:8180 >> User-Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; >> rv:1.9.1.3) >> Gecko/20090824 Firefox/3.5.3 >> Accept >> text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 >> Accept-Language en-gb,en;q=0.5 >> Accept-Encoding gzip,deflate >> Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7 >> Keep-Alive 300 >> Connection keep-alive >> If-Modified-Since Mon, 28 Jan 2008 20:38:54 GMT >> If-None-Match W/"7697-1201552734000" >> Cache-Control max-age=0 >> >> Response : >> (Status-Line) HTTP/1.1 304 Not Modified >> Server Apache-Coyote/1.1 >> Etag W/"7697-1201552734000" >> Date Fri, 18 Dec 2009 11:26:01 GMT >> >> >> C) Adding explicit "FR" startup parameters >> Tomcat startup parameters as per tomcat5w.exe : >> -Dcatalina.home=C:\Tomcat5.5 >> -Dcatalina.base=C:\Tomcat5.5 >> -Djava.endorsed.dirs=C:\Tomcat5.5\common\endorsed >> -Djava.io.tmpdir=C:\Tomcat5.5\temp >> -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager >> -Djava.util.logging.config.file=C:\Tomcat5.5\conf\logging.properties >> -Duser.language=fr >> -Duser.region=FR >> >> Request; >> (Request-Line) GET /RELEASE-NOTES.txt HTTP/1.1 >> Host localhost:8180 >> User-Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; >> rv:1.9.1.3) >> Gecko/20090824 Firefox/3.5.3 >> Accept >> text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 >> Accept-Language en-gb,en;q=0.5 >> Accept-Encoding gzip,deflate >> Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7 >> Keep-Alive 300 >> Connection keep-alive >> If-Modified-Since Mon, 28 Jan 2008 20:38:54 GMT >> If-None-Match W/"7697-1201552734000" >> Cache-Control max-age=0 >> >> Response: >> (Status-Line) HTTP/1.1 304 Non Modifié >> Server Apache-Coyote/1.1 >> Etag W/"7697-1201552734000" >> Date Fri, 18 Dec 2009 11:34:13 GMT >> >> >> In other words, changing the >> -Duser.language=xx >> -Duser.region=xx >> Java command-line parameters don't seem to make a difference >> in the headers returned by Tomcat, and these headers do not >> seem to include an "Last-Modified" header. >> If you look closely at the 3d example above however, you'll >> see that the HTTP status line, in the French case, /is/ >> modified compared to the default. So Tomcat definitely is >> sensitive to the JVM language setting for some things. >> >> Finally, I added a test with a new file, to see if I could >> obtain the Last-Modified header somehow : >> >> D) still French settings >> Tomcat startup parameters as per tomcat5w.exe : >> -Dcatalina.home=C:\Tomcat5.5 >> -Dcatalina.base=C:\Tomcat5.5 >> -Djava.endorsed.dirs=C:\Tomcat5.5\common\endorsed >> -Djava.io.tmpdir=C:\Tomcat5.5\temp >> -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager >> -Djava.util.logging.config.file=C:\Tomcat5.5\conf\logging.properties >> -Duser.language=fr >> -Duser.region=FR >> >> Request: >> (Request-Line) GET /RELEASE-NOTES_updated.txt HTTP/1.1 >> Host localhost:8180 >> User-Agent Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; >> rv:1.9.1.3) >> Gecko/20090824 Firefox/3.5.3 >> Accept >> text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 >> Accept-Language en-gb,en;q=0.5 >> Accept-Encoding gzip,deflate >> Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7 >> Keep-Alive 300 >> Connection keep-alive >> >> >> Response: >> (Status-Line) HTTP/1.1 200 OK >> Server Apache-Coyote/1.1 >> Etag W/"7697-1201552734000" >> Last-Modified Mon, 28 Jan 2008 20:38:54 GMT >> Content-Type text/plain >> Content-Length 7697 >> Date Fri, 18 Dec 2009 11:47:39 GMT >> >> This time (1st request for a new document), I did get a >> "Last-Modified" >> header, but despite the French setting, it is definitely an >> English Last-Modified date. >> >> It seems that in some cases, the Last-Modified header /is/ >> being generated by Tomcat, but it is always the "en" version. >> >> Hope this helps >> >> >> --------------------------------------------------------------------- >> 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 > > --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org