Odd, I thought this code was already in the framework.  Checking now.

On Mon, Aug 20, 2007 at 8:28 AM, Willem Dekker <[EMAIL PROTECTED]> wrote:
>
> I am evaluating Tapestry 5.05 on websphere 6.1 with RAD7.0 as IDE.
>
> I have imported the tutorial1 application and it deployed al right.
> But when I tried to start the application with
> http://localhost:9081/tutorial1 in a browser I had the following message:
> Error 404: SRVE0190E: File not found: {0}
> Or when I try the direct home url http://localhost:9081/tutorial1/start I
> had the same kind of message:
> Error 404: SRVE0190E: File not found: /start
>
> So I did a bit of searching and found out that it had something to to with
> IBM's issues PK31377 and PK33090 which are fixed in fixpak 9 for Websphere
> 6.1.
> After enabling the com.ibm.ws.webcontainer.invokeFiltersCompatibility
> property I tried the application again but I got the same kind of Error in
> my browser.
>
> I've attached the tapestry source to my environment and set breakpoints to
> find out where things are going wrong.
> What I have found is that the problem lies in the implementation of the
> getPath() method of the Request interface. It calls the HttpServletRequest's
> getServletPath() method which returns an empty string("") in Websphere but
> when calling the getPathInfo() method on the request it returns the correct
> String. On other web-containers it probably works fine(I've tested on tomcat
> 5.5). It seems like a difference in interpretation of the spec, which says
> the following of the above methods:
>
> • Servlet Path: The path section that directly corresponds to the mapping
> which activated this request. This path starts with a'/' character except in
> the
> case where the request is matched with the '/*' pattern, in which case it is
> an
> empty string.
> • PathInfo: The part of the request path that is not part of the Context
> Path or
> the Servlet Path. It is either null if there is no extra path, or is a
> string with a
> leading '/'.
> (source: Java(TM) Servlet Specification 2.4 Final Release)
>
> To temporary solve this problem I have created a contribute method for the
> RequestHandler which instantiate an extended implementation of the
> RequestImp with an overridden implementation of the getPath() method like
> this:
>                @Override
>                public String getPath() {
>                        //Websphere returns the path in the getPathInfo()
>                        String path = request.getPathInfo();
>                        //path == null so no Websphere
>                        if (path == null) {
>                                return super.getPath();
>                        }
>                        //TODO find out if this is necessary
>                        if (path.length() == 0) {
>                                path = "/";
>                        }
>                        return path;
>                }
>
> Now I can finally enjoy tapestry 5 development on Websphere 6.1. However I
> don't think this should be a basic thing WAS developers should do when the
> want to create a T5 application.
> Hopefully this issue could be fixed somehow in a future release.
>
> Cheers,
>
> Willem
>
>
>
> --
> View this message in context: 
> http://www.nabble.com/T5-on-websphere-6.1-problems-tf4299547.html#a12238072
> Sent from the Tapestry - Dev mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>



-- 
Howard M. Lewis Ship

Creator Apache Tapestry and Apache HiveMind

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to