Sorry ... wicket 1.5.3 On Wed, Nov 16, 2011 at 5:11 PM, thomas willomitzer <[email protected]> wrote:
> Martin, > > Upgrading to 1.5.2 and using tomcat 7.0.22 fixed my issue - now I get > > > Location: > https://localhost/.;jsessionid=176D66D946CA33F54798F8EE1863C475 > > Thanks > Thomas > > > On Wed, Nov 16, 2011 at 3:09 PM, Martin Grigorov <[email protected]>wrote: > >> On Wed, Nov 16, 2011 at 4:02 PM, thomas willomitzer <[email protected]> >> wrote: >> > Hi Martin, >> > >> > Sorry for the confusion I meant that i've seen >> > org.apache.wicket.util.string.Strings.stripJSessionId(uri) being called >> for >> > ResourceReferences to Javascript and Css. >> >> This is used to check whether a given resource is already contributed or >> not. >> >> > >> > I'm using wicket 1.5.1 and tomcat 6.0.33. >> >> Try with Wicket 1.5.3. I remember a ticket about such problems with >> the home page without filter path. >> We have a workaround in Wicket but I remember Tomcat also fixed it in >> 7.x, not sure about 6.x. >> >> > >> > You're right - I've traced from >> > >> org.apache.wicket.protocol.http.servlet.ServletWebResponse.sendRedirect(String) >> > and it seems like there is a problem with "?1" and >> > org.apache.catalina.connector.toEncoded(String url, String sessionId). >> > >> > In toEncoded(String url, String sessionId) when url = "?1" it seems that >> > the parameter is NOT appended since variable path is of length zero and >> if( >> > sb.length() > 0 ) is false. (in order to see a value of "?1" i set a >> > breakpoint in ServletWebResponse.sendRedirect followed by a breakpoint >> in >> > toEncoded) >> > >> > Since it seems to work for the rest of the world I guess I'm doing >> > something wrong ... >> > >> > protected String toEncoded(String url, String sessionId) { >> > >> > if ((url == null) || (sessionId == null)) >> > return (url); >> > >> > String path = url; >> > String query = ""; >> > String anchor = ""; >> > int question = url.indexOf('?'); >> > if (question >= 0) { >> > path = url.substring(0, question); >> > query = url.substring(question); >> > } >> > int pound = path.indexOf('#'); >> > if (pound >= 0) { >> > anchor = path.substring(pound); >> > path = path.substring(0, pound); >> > } >> > StringBuffer sb = new StringBuffer(path); >> > if( sb.length() > 0 ) { // jsessionid can't be first. >> > sb.append(";"); >> > sb.append(Globals.SESSION_PARAMETER_NAME); >> > sb.append("="); >> > sb.append(sessionId); >> > } >> > sb.append(anchor); >> > sb.append(query); >> > return (sb.toString()); >> > >> > } >> > >> > >> > Thanks >> > Thomas >> > >> > >> > On Wed, Nov 16, 2011 at 1:39 PM, Martin Grigorov <[email protected] >> >wrote: >> > >> >> Hi, >> >> >> >> On Wed, Nov 16, 2011 at 2:29 PM, thomas willomitzer >> >> <[email protected]> wrote: >> >> > Dear all, >> >> > >> >> > I've spent quite a bit of time tracking down a problem I'm having >> using >> >> > wicket and stateful pages. >> >> > I've enabled the jsessionid url rewriting in tomcat (by simply using >> the >> >> > default settings) but I get a redirect url without the jsessionid. >> >> > >> >> > I've traced into tomcat's Response.encodeUrl and saw that the >> jsessionid >> >> is >> >> > in fact appended (but later removed for in page references by wicket >> - >> >> > that's fine). >> >> >> >> What do you mean by that ? Where Wicket removes the jsessionid from the >> >> url ? >> >> Before issuing a redirect Wicket calls >> >> javax.servlet.http.HttpServletResponse.encodeRedirectURL(String) which >> >> is responsible to put jsessionid if cookies are disabled. >> >> See >> >> >> org.apache.wicket.protocol.http.servlet.ServletWebResponse.sendRedirect(String) >> >> >> >> The application I work on works without cookies and all if fine. >> (Wicket >> >> 1.5.3) >> >> >> >> > >> >> > What am I doing wrong and am I right in the assumption that wicket >> should >> >> > work without cookies? >> >> > >> >> > When using curl I first get a redirect to ?1, then to /. and then a >> 404 >> >> > >> >> > $ curl -v http://localhost >> >> > * About to connect() to localhost port 80 (#0) >> >> > * Trying 127.0.0.1... connected >> >> > * Connected to localhost (127.0.0.1) port 80 (#0) >> >> >> GET / HTTP/1.1 >> >> >> User-Agent: curl/7.21.1 (i686-pc-mingw32) libcurl/7.21.1 >> OpenSSL/0.9.8k >> >> > zlib/1.2.3 >> >> >> Host: localhost >> >> >> Accept: */* >> >> >> >> >> > < HTTP/1.1 302 Moved Temporarily >> >> > < Server: Apache-Coyote/1.1 >> >> > < Set-Cookie: JSESSIONID= >> >> > CA5649F5EA37AC7CDB2D5E06170923A1; Path=/ >> >> > < Date: Wed, 16 Nov 2011 12:16:15 GMT >> >> > < Expires: Thu, 01 Jan 1970 00:00:00 GMT >> >> > < Pragma: no-cache >> >> > < Cache-Control: no-cache, no-store >> >> > < Location: http://localhost/?1 >> >> > < Content-Length: 0 >> >> > < >> >> > * Connection #0 to host localhost left intact >> >> > * Closing connection #0 >> >> > >> >> > thomas@willo ~ >> >> > $ curl -v http://localhost?1 <http://localhost/?1> >> >> > * About to connect() to localhost port 80 (#0) >> >> > * Trying 127.0.0.1... connected >> >> > * Connected to localhost (127.0.0.1) port 80 (#0) >> >> >> GET /?1 HTTP/1.1 >> >> >> User-Agent: curl/7.21.1 (i686-pc-mingw32) libcurl/7.21.1 >> OpenSSL/0.9.8k >> >> > zlib/1.2.3 >> >> >> Host: localhost >> >> >> Accept: */* >> >> >> >> >> > < HTTP/1.1 302 Moved Temporarily >> >> > < Server: Apache-Coyote/1.1 >> >> > < Date: Wed, 16 Nov 2011 12:16:21 GMT >> >> > < Expires: Thu, 01 Jan 1970 00:00:00 GMT >> >> > < Pragma: no-cache >> >> > < Cache-Control: no-cache, no-store >> >> > < Location: http://localhost/. >> >> > < Content-Length: 0 >> >> > < >> >> > * Connection #0 to host localhost left intact >> >> > * Closing connection #0 >> >> > >> >> > thomas@willo ~ >> >> > $ curl -v http://localhost/. >> >> > * About to connect() to localhost port 80 (#0) >> >> > * Trying 127.0.0.1... connected >> >> > * Connected to localhost (127.0.0.1) port 80 (#0) >> >> >> GET /. HTTP/1.1 >> >> >> User-Agent: curl/7.21.1 (i686-pc-mingw32) libcurl/7.21.1 >> OpenSSL/0.9.8k >> >> > zlib/1.2.3 >> >> >> Host: localhost >> >> >> Accept: */* >> >> >> >> >> > < HTTP/1.1 404 Not Found >> >> > < Server: Apache-Coyote/1.1 >> >> > < Content-Type: text/html;charset=utf-8 >> >> > < Content-Length: 958 >> >> > < Date: Wed, 16 Nov 2011 12:16:24 GMT >> >> > < >> >> > <html><head><title>Apache Tomcat/6.0.33 - Error >> >> report</title><style><!--H1 >> >> > >> >> >> {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size: >> >> > 22px;} H2 >> >> > >> >> >> {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} >> >> > H3 {font-family:Tahoma,Arial,sans-serif;color:white;backgro >> >> > und-color:#525D76;font-size:14px;} BODY >> >> > >> >> >> {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B >> >> > {font-family:Tahoma,Arial,sans-serif;color:w >> >> > hite;background-color:#525D76;} P >> >> > >> >> >> {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A >> >> > {color : black;}A.name {color : black;}HR >> >> > {color : #525D76;}--></style> </head><body><h1>HTTP Status 404 - >> >> /.</h1><HR >> >> > size="1" noshade="noshade"><p><b>type</b> Status >> >> > report</p><p><b>message</b> <u>/.</ >> >> > u></p><p><b>description</b> <u>The requested resource (/.) is not >> >> > available.</u></p><HR size="1" noshade="noshade"><h3>Apache >> >> > Tomcat/6.0.33</h3></body></html>* >> >> > Connection #0 to host localhost left intact >> >> > * Closing connection #0 >> >> > >> >> >> >> >> >> >> >> -- >> >> Martin Grigorov >> >> jWeekend >> >> Training, Consulting, Development >> >> http://jWeekend.com >> >> >> >> --------------------------------------------------------------------- >> >> To unsubscribe, e-mail: [email protected] >> >> For additional commands, e-mail: [email protected] >> >> >> >> >> > >> >> >> >> -- >> Martin Grigorov >> jWeekend >> Training, Consulting, Development >> http://jWeekend.com >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: [email protected] >> >> >
