tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gary Lawrence Murphy <ga...@teledyn.com>
Subject Re: troubleshooting getPathInfo in jsp files
Date Wed, 15 Dec 2010 03:08:32 GMT
Thanks for the tip; I can't confirm it right now but it seems to me I tried
to do just such a mapping and it also violated the parsing rules and was
rejected by the webapp loader.

regardless though, I am in a high-volume real-time environment where editing
the web.xml to insert a new service is simply not an option, the recognition
of .jsp scripts with pathinfo appended needs to be fluid and generic to
allow ad-hoc insertions.  Even with an auto-recognition of the update to the
web.xml, it would take down all the jsp-generated servlets every time a
change is made and that would upset a lot of client business.

Oh well.  Thanks for your help in all this and for the ideas and
explanations; looks like I'm stuck with resin and jetty; there's far too
many scripts and other systems dependent on these URL patterns to rewrite it
all now (the eternal curse of the legacy software)

On Tue, Dec 14, 2010 at 7:30 PM, Mark Thomas <markt@apache.org> wrote:

> On 15/12/2010 00:00, Mark Thomas wrote:
>
>> On 14/12/2010 22:54, Gary Lawrence Murphy wrote:
>>
>>> On Tue, Dec 14, 2010 at 4:35 PM, Christopher Schultz<
>>> chris@christopherschultz.net> wrote:
>>>
>>>
>>>>  however when called with http://localhost:8080/test.jsp/this it
>>>>> fails as
>>>>>
>>>> a
>>>>
>>>>> 404 not found
>>>>>
>>>>
>>>> Actually, this makes sense to me: the default mapping for the JSP
>>>> servlet is "*.jsp". Your path doesn't end in .jsp, and therefore does
>>>> not match the url-pattern.
>>>>
>>>> this is the crux of the problem, and the showstopper preventing us from
>>>>
>>> deploying under Tomcat -- all our applications use this convention
>>> and, as I
>>> said, it works in other servlet containers.
>>>
>>> I tried using *.jsp/* and this threw a parsing error,
>>>
>> Hmm. Odd. I'll look into that. It won't work they way you want but I'd
>> like to get to the bottom of the parsing error.
>>
>>  the webapp refused to run load. *.jsp* ignored all jsp files.
>>>
>> The * characters are probably being treated literally.
>>
>>  I think other servlet containers
>>> are using a globbing that is assumed to be the complete expression,
>>> which in
>>> regex would be .*\.jsp, whereas it appears that tomcat is taking it in
>>> what
>>> a regex would phrase as .*\.jsp$, ie it is enforcing the end of the
>>> string
>>> as the end of the candidate string. If this behaviour cannot be
>>> changed, I
>>> have to change servlet containers, so I'm eager to find out one way or
>>> the
>>> other if tomcat can accommodate this.
>>>
>>
>> Tomcat is following the mapping rules in the Servlet spec. It looks like
>> Resin has some proprietary extensions to the mapping rules. I'd be
>> surprised if you found other containers supporting them.
>>
>
> I can get Tomcat to behave the way you want but configuring web.xml isn't
> going to be pretty. I'd strongly recommend moving to an approach more in
> line with the Servlet spec rather than the current container-specific
> mapping approach.
>
> If you have a JSP in the root of your webapp called snoop.jsp (I took this
> from the examples web app) then you'll need to add the following:
>    <servlet>
>        <servlet-name>snoop</servlet-name>
>        <jsp-file>/snoop.jsp</jsp-file>
>    </servlet>
>    <servlet-mapping>
>        <servlet-name>snoop</servlet-name>
>        <url-pattern>/snoop.jsp/*</url-pattern>
>    </servlet-mapping>
>
> As I said, adding that for every single JSP isn't going to be pretty but it
> does give you a way to make this work on Tomcat (or any other container).
>
>
> Mark
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>


-- 
*Have Blog, Will Travel: blog.teledyn.com*
*A Serviceable Substitute: post.teledyn.com*

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message