You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Stefan Löhr <lo...@topographics.de> on 2015/01/08 09:33:22 UTC

Umlaut URLs fail in Tomcat when accessed via isapi_redirect

Hello Tomcat users,

I have some PDF Documents in my Servlet that contain ä,ö,ü,ß, etc. On 
accessing the documents like this 
http://hostname:8080/ServletName/test_ä.txt the tomcat initially responded 
with an 404. After changing the tomcat server.xml from this

<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" tomcatAuthentication="false"/>

to this

<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" tomcatAuthentication="false" URIEncoding="UTF-8"/>

I was able to access the documents.

My Problem starts when I want to get the documents via IIS (isapi_redirect). 
When I call http://hostname/ServletName/test_ä.txt the Tomcat allways 
returns 404. (Documents without umlaut are served correctly)

The corresponding lines in the tomcat access log look like this:

IP... - - [date...] "GET /ServletName/test_%C3%A4.txt HTTP/1.1" 200 6
IP... - - [date...] "GET /favicon.ico HTTP/1.1" 200 21630
IP... - - [date...] "GET /ServletName/test_%C3%A4.txt HTTP/1.1" 404 1001

The first two lines result from accessing the documents directly 
(http://hostname:8080/...). The last line results from accessing trough IIS 
and isapi_redirect.

I dont understand why the call from the isapi_redirect is treated 
diffenrently by tomcat despite beeing the exact same URL (from the tomcat 
point of view).

I also postet the problem here:
http://webmasters.stackexchange.com/questions/75753/umlaut-urls-fail-in-tomcat-when-accessed-via-isapi-redirect

I would really appreciate any hints to solve the problem.

Greetings,
Stefan 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: Umlaut URLs fail in Tomcat when accessed via isapi_redirect

Posted by Stefan Löhr <lo...@topographics.de>.
OK.
Thanks very much!


----- Original Message ----- 
From: "André Warnier" <aw...@ice-sa.com>
To: "Tomcat Users List" <us...@tomcat.apache.org>
Sent: Thursday, January 08, 2015 11:56 AM
Subject: Re: Umlaut URLs fail in Tomcat when accessed via isapi_redirect


> Stefan Löhr wrote:
>>>>> Did you add URIEncoding="UTF-8" to the AJP connector?
>> Thanks Mark!
>> That solved it.
>> I only added URIEncoding to the 8080 Connector Port.
>>
>> Why does it also have to be in the AJP connector?
>
> because when you access Tomcat through IIS and the isapi_redirect 
> connector, the requests are actually goin this way :
>
> browser - HTTP -> (IIS + isapi) -- AJP --> <Tomcat AJP Connector> --> 
> Tomcat + webapp
>
> while when you access Tomcat directly through port 8080, they go this way 
> :
>
> browser - HTTP -> <Tomcat HTTP:8080 Connector> --> Tomcat + webapp
>
> AJP is a different protocol than HTTP.  It carries the same kind of 
> information, but encoded in a different way. That is why you use a 
> different Connector at the Tomcat level.
> The Connector decodes the AJP-formated request, and reformats it into a 
> standard "request object" which Tomcat can understand.
> Similarly, the HTTP Connector decodes a HTTP request, and reformats it 
> into a similar "request object" which Tomcat understands.
>
>
>>
>> Greetings,
>> Stefan
>>
>> ----- Original Message ----- From: "Mark Thomas" <ma...@apache.org>
>> To: "Tomcat Users List" <us...@tomcat.apache.org>
>> Sent: Thursday, January 08, 2015 9:45 AM
>> Subject: Re: Umlaut URLs fail in Tomcat when accessed via isapi_redirect
>>
>>
>>> On 08/01/2015 08:33, Stefan Löhr wrote:
>>>> Hello Tomcat users,
>>>>
>>>> I have some PDF Documents in my Servlet that contain ä,ö,ü,ß, etc. On
>>>> accessing the documents like this
>>>> http://hostname:8080/ServletName/test_ä.txt the tomcat initially
>>>> responded with an 404. After changing the tomcat server.xml from this
>>>>
>>>> <Connector port="8080" protocol="HTTP/1.1"
>>>> connectionTimeout="20000"
>>>> redirectPort="8443" tomcatAuthentication="false"/>
>>>>
>>>> to this
>>>>
>>>> <Connector port="8080" protocol="HTTP/1.1"
>>>> connectionTimeout="20000"
>>>> redirectPort="8443" tomcatAuthentication="false" URIEncoding="UTF-8"/>
>>>>
>>>> I was able to access the documents.
>>>>
>>>> My Problem starts when I want to get the documents via IIS
>>>> (isapi_redirect). When I call http://hostname/ServletName/test_ä.txt 
>>>> the
>>>> Tomcat allways returns 404. (Documents without umlaut are served 
>>>> correctly)
>>>>
>>>> The corresponding lines in the tomcat access log look like this:
>>>>
>>>> IP... - - [date...] "GET /ServletName/test_%C3%A4.txt HTTP/1.1" 200 6
>>>> IP... - - [date...] "GET /favicon.ico HTTP/1.1" 200 21630
>>>> IP... - - [date...] "GET /ServletName/test_%C3%A4.txt HTTP/1.1" 404 
>>>> 1001
>>>>
>>>> The first two lines result from accessing the documents directly
>>>> (http://hostname:8080/...). The last line results from accessing trough
>>>> IIS and isapi_redirect.
>>>>
>>>> I dont understand why the call from the isapi_redirect is treated
>>>> diffenrently by tomcat despite beeing the exact same URL (from the
>>>> tomcat point of view).
>>>>
>>>> I also postet the problem here:
>>>> http://webmasters.stackexchange.com/questions/75753/umlaut-urls-fail-in-tomcat-when-accessed-via-isapi-redirect
>>>>
>>>>
>>>> I would really appreciate any hints to solve the problem.
>>>
>>> Did you add URIEncoding="UTF-8" to the AJP connector?
>>>
>>> Mark
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>>> For additional commands, e-mail: users-help@tomcat.apache.org
>>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: users-help@tomcat.apache.org
>>
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: Umlaut URLs fail in Tomcat when accessed via isapi_redirect

Posted by André Warnier <aw...@ice-sa.com>.
Stefan Löhr wrote:
>>>> Did you add URIEncoding="UTF-8" to the AJP connector?
> Thanks Mark!
> That solved it.
> I only added URIEncoding to the 8080 Connector Port.
> 
> Why does it also have to be in the AJP connector?

because when you access Tomcat through IIS and the isapi_redirect connector, the requests 
are actually goin this way :

browser - HTTP -> (IIS + isapi) -- AJP --> <Tomcat AJP Connector> --> Tomcat + webapp

while when you access Tomcat directly through port 8080, they go this way :

browser - HTTP -> <Tomcat HTTP:8080 Connector> --> Tomcat + webapp

AJP is a different protocol than HTTP.  It carries the same kind of information, but 
encoded in a different way. That is why you use a different Connector at the Tomcat level.
The Connector decodes the AJP-formated request, and reformats it into a standard "request 
object" which Tomcat can understand.
Similarly, the HTTP Connector decodes a HTTP request, and reformats it into a similar 
"request object" which Tomcat understands.


> 
> Greetings,
> Stefan
> 
> ----- Original Message ----- From: "Mark Thomas" <ma...@apache.org>
> To: "Tomcat Users List" <us...@tomcat.apache.org>
> Sent: Thursday, January 08, 2015 9:45 AM
> Subject: Re: Umlaut URLs fail in Tomcat when accessed via isapi_redirect
> 
> 
>> On 08/01/2015 08:33, Stefan Löhr wrote:
>>> Hello Tomcat users,
>>>
>>> I have some PDF Documents in my Servlet that contain ä,ö,ü,ß, etc. On
>>> accessing the documents like this
>>> http://hostname:8080/ServletName/test_ä.txt the tomcat initially
>>> responded with an 404. After changing the tomcat server.xml from this
>>>
>>> <Connector port="8080" protocol="HTTP/1.1"
>>> connectionTimeout="20000"
>>> redirectPort="8443" tomcatAuthentication="false"/>
>>>
>>> to this
>>>
>>> <Connector port="8080" protocol="HTTP/1.1"
>>> connectionTimeout="20000"
>>> redirectPort="8443" tomcatAuthentication="false" URIEncoding="UTF-8"/>
>>>
>>> I was able to access the documents.
>>>
>>> My Problem starts when I want to get the documents via IIS
>>> (isapi_redirect). When I call http://hostname/ServletName/test_ä.txt the
>>> Tomcat allways returns 404. (Documents without umlaut are served 
>>> correctly)
>>>
>>> The corresponding lines in the tomcat access log look like this:
>>>
>>> IP... - - [date...] "GET /ServletName/test_%C3%A4.txt HTTP/1.1" 200 6
>>> IP... - - [date...] "GET /favicon.ico HTTP/1.1" 200 21630
>>> IP... - - [date...] "GET /ServletName/test_%C3%A4.txt HTTP/1.1" 404 1001
>>>
>>> The first two lines result from accessing the documents directly
>>> (http://hostname:8080/...). The last line results from accessing trough
>>> IIS and isapi_redirect.
>>>
>>> I dont understand why the call from the isapi_redirect is treated
>>> diffenrently by tomcat despite beeing the exact same URL (from the
>>> tomcat point of view).
>>>
>>> I also postet the problem here:
>>> http://webmasters.stackexchange.com/questions/75753/umlaut-urls-fail-in-tomcat-when-accessed-via-isapi-redirect 
>>>
>>>
>>>
>>> I would really appreciate any hints to solve the problem.
>>
>> Did you add URIEncoding="UTF-8" to the AJP connector?
>>
>> Mark
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: users-help@tomcat.apache.org
>>
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: Umlaut URLs fail in Tomcat when accessed via isapi_redirect

Posted by Stefan Löhr <lo...@topographics.de>.
>>> Did you add URIEncoding="UTF-8" to the AJP connector?
Thanks Mark!
That solved it.
I only added URIEncoding to the 8080 Connector Port.

Why does it also have to be in the AJP connector?

Greetings,
Stefan

----- Original Message ----- 
From: "Mark Thomas" <ma...@apache.org>
To: "Tomcat Users List" <us...@tomcat.apache.org>
Sent: Thursday, January 08, 2015 9:45 AM
Subject: Re: Umlaut URLs fail in Tomcat when accessed via isapi_redirect


> On 08/01/2015 08:33, Stefan Löhr wrote:
>> Hello Tomcat users,
>>
>> I have some PDF Documents in my Servlet that contain ä,ö,ü,ß, etc. On
>> accessing the documents like this
>> http://hostname:8080/ServletName/test_ä.txt the tomcat initially
>> responded with an 404. After changing the tomcat server.xml from this
>>
>> <Connector port="8080" protocol="HTTP/1.1"
>> connectionTimeout="20000"
>> redirectPort="8443" tomcatAuthentication="false"/>
>>
>> to this
>>
>> <Connector port="8080" protocol="HTTP/1.1"
>> connectionTimeout="20000"
>> redirectPort="8443" tomcatAuthentication="false" URIEncoding="UTF-8"/>
>>
>> I was able to access the documents.
>>
>> My Problem starts when I want to get the documents via IIS
>> (isapi_redirect). When I call http://hostname/ServletName/test_ä.txt the
>> Tomcat allways returns 404. (Documents without umlaut are served 
>> correctly)
>>
>> The corresponding lines in the tomcat access log look like this:
>>
>> IP... - - [date...] "GET /ServletName/test_%C3%A4.txt HTTP/1.1" 200 6
>> IP... - - [date...] "GET /favicon.ico HTTP/1.1" 200 21630
>> IP... - - [date...] "GET /ServletName/test_%C3%A4.txt HTTP/1.1" 404 1001
>>
>> The first two lines result from accessing the documents directly
>> (http://hostname:8080/...). The last line results from accessing trough
>> IIS and isapi_redirect.
>>
>> I dont understand why the call from the isapi_redirect is treated
>> diffenrently by tomcat despite beeing the exact same URL (from the
>> tomcat point of view).
>>
>> I also postet the problem here:
>> http://webmasters.stackexchange.com/questions/75753/umlaut-urls-fail-in-tomcat-when-accessed-via-isapi-redirect
>>
>>
>> I would really appreciate any hints to solve the problem.
>
> Did you add URIEncoding="UTF-8" to the AJP connector?
>
> Mark
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: Umlaut URLs fail in Tomcat when accessed via isapi_redirect

Posted by Mark Thomas <ma...@apache.org>.
On 08/01/2015 08:33, Stefan Löhr wrote:
> Hello Tomcat users,
> 
> I have some PDF Documents in my Servlet that contain ä,ö,ü,ß, etc. On
> accessing the documents like this
> http://hostname:8080/ServletName/test_ä.txt the tomcat initially
> responded with an 404. After changing the tomcat server.xml from this
> 
> <Connector port="8080" protocol="HTTP/1.1"
> connectionTimeout="20000"
> redirectPort="8443" tomcatAuthentication="false"/>
> 
> to this
> 
> <Connector port="8080" protocol="HTTP/1.1"
> connectionTimeout="20000"
> redirectPort="8443" tomcatAuthentication="false" URIEncoding="UTF-8"/>
> 
> I was able to access the documents.
> 
> My Problem starts when I want to get the documents via IIS
> (isapi_redirect). When I call http://hostname/ServletName/test_ä.txt the
> Tomcat allways returns 404. (Documents without umlaut are served correctly)
> 
> The corresponding lines in the tomcat access log look like this:
> 
> IP... - - [date...] "GET /ServletName/test_%C3%A4.txt HTTP/1.1" 200 6
> IP... - - [date...] "GET /favicon.ico HTTP/1.1" 200 21630
> IP... - - [date...] "GET /ServletName/test_%C3%A4.txt HTTP/1.1" 404 1001
> 
> The first two lines result from accessing the documents directly
> (http://hostname:8080/...). The last line results from accessing trough
> IIS and isapi_redirect.
> 
> I dont understand why the call from the isapi_redirect is treated
> diffenrently by tomcat despite beeing the exact same URL (from the
> tomcat point of view).
> 
> I also postet the problem here:
> http://webmasters.stackexchange.com/questions/75753/umlaut-urls-fail-in-tomcat-when-accessed-via-isapi-redirect
> 
> 
> I would really appreciate any hints to solve the problem.

Did you add URIEncoding="UTF-8" to the AJP connector?

Mark


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org