That is because your have overridden the default servlet. It is now your
servlet's job to also serve static content.
A simple workaround: Extend the DefaultServlet, then use super.doGet(),
super.doPost() ... when your servlet doesn't want the mapping.
-Tim
Mike Curwen wrote:
> Apologies if this is a dupe. I just realized I sent the first one from
> an account that is not subscribed....
>
> **************************************************
>
> Once more with feeling?
>
> Bill Barker, John Turner and others might recognize this question. Yes,
> it's me AGAIN.
>
> httpd.conf:
>
> <VirtualHost 205.200.100.109>
> ServerName foo.myfoo.com
> ServerAlias www.foo.myfoo.com
> DocumentRoot /home/webhome/myfoo
> #deny WEB-INF
> <Location "/WEB-INF">
> AllowOverride None
> deny from all
> </Location>
> JkMount /* tomcat1
> ErrorLog /var/log/myfoo/error_log
> CustomLog /var/log/myfoo/access_log combined
> </VirtualHost>
>
> server.xml:
>
> <Context path="" docBase="/home/webhome/myfoo/"
> defaultSessionTimeout="60" />
>
> web.xml in myfoo/WEB-INF:
>
> <servlet-mapping>
> <servlet-name>Translator</servlet-name>
> <url-pattern>/</url-pattern>
> </servlet-mapping>
>
>
> Result:
>
> http://foo.myfoo.com/hello/there
>
> 1. Apache passes everything to Tomcat
> 2. Tomcat can't recognize a mapped servlet, and uses the default
> 3. My Translator servlet will translate 'foo' from the subdomain and the
> /hello/there URI into a form like "/real_servlet?a=foo&b=hello&c=there",
> which is then redirected to.
> 4. Request for foo.myfoo.com/real_servlet?a=foo&b=hello&c=there
> 5. Apache passes everything to Tomcat
> 6. the real_servlet is a recognized mapping, and everything is
> wonderful.
>
>
>
> Except when it comes to the HTML.
>
> <img src="/img/foo.gif" />
> <link rel="stylesheet" href="/myfoo.css" type="text/css">
>
> These requests are *also* being sent through my translator servlet,
> which of course, results in little red "X" images and no CSS.
>
> The solution I've come up with is to serve all images/css/etc from a
> completely separate virtual host.
>
> <VirtualHost 205.200.100.109>
> ServerName img.myfoo.com
> DocumentRoot /home/webhome/myfoo
> #deny WEB-INF
> <Location "/WEB-INF">
> AllowOverride None
> deny from all
> </Location>
> ErrorLog /var/log/myfoo/img_error_log
> CustomLog /var/log/myfoo/img_access_log combined
> </VirtualHost>
>
> Here, I forward nothing to Tomcat, and let apache serve whatever
> requests it gets. And of course, I'd construct my links in such a
> manner:
>
> <img src="http://img.myfoo.com/img/foo.gif" />
> <link rel="stylesheet" href="http://img.myfoo.com/myfoo.css"
> type="text/css">
>
>
> Finally the question:
> Is there a way around having to use the separate virtual host to serve
> static content?
>
>
> -------------------------------------------
> Mike Curwen 204-885-7733
> Intermediate Programmer www.gb-im.com
> -------------------------------------------
> ____ ____ ___ __ __
> / ___| | __ ) |_ _| | \/ |
> | | _ | _ \ _____ | | | |\/| |
> | |_| | | |_) | |_____| | | | | | |
> \____| |____/ |___| |_| |_|
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tomcat-user-unsubscribe@(protected)
> For additional commands, e-mail: tomcat-user-help@(protected)
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@(protected)
For additional commands, e-mail: tomcat-user-help@(protected)