I want to run straight tomcat as a proxy server. (I understand that there are a variety of other applications out there that may perform better and offer more features. I also understand that I could front tomcat with apache and do some sort of rewriting solution. I'd rather not do any of these; I just want to use plain tomcat. :) )
I've written a servlet and overridden the commonly used default servlet 'org.apache.catalina.servlets.DefaultServlet' with my own. All of this is working fine. The problem occurs when I run my server as a proxy server. Web browsers will make the request for "http://www.google.com" look something like this: GET http://www.google.com/ HTTP/1.1 Accept: */* Accept-Language: en-us Host: www.google.com (there are other parts to it, but really this is all that matters.) My tomcat responds with HTTP/1 1 400 No Host matches server name www.google.com Server: Apache-Coyote/1.1 Transfer-Encoding: chunked Date: Sat, 22 Jul 2006 20:10:26 GMT Connection: close Because, of course, my server host name is not www.google.com. I've read the documentation and a good deal of the source code and now understand that org.apache.catalina.core.StandardEngine has associated with it a set of Hosts each which is configured with one or more host names (usually one but org.apache.catalina.core.StandardHost supports 'host name aliases'). If the Engine cannot find a host matching the "Host" http header then it will respond back with the result above. (I guess it is a bit more complicated than this since my traces through the code show other classes, like host-manager, getting in the mix.) I expected that Tomcat could accomplish what I am trying to do purely with configuration but after reading through the documentation, FAQs, and much of the catalina code, I can't find the solution. (The one solution that I have come up with, involving subclassing the org.apache.catalina.core.StandardHost class and overriding the 'findChild' method, feels hacky and like I said -- I thought that I should be able to do what I want using config only.) To summarize - I would like to configure my tomcat instance to call my servlet independent of the URL or http "host" header which tomcat receives. Does anyone know how to do this? Thanks. Jason McHugh --------------------------------------------------------------------- To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]