I’m using Tomcat 7 to host my application.
I’ve used a ROOT.xml file under tomcat-home\conf\Catalina\localhost
<Context
docBase="C:\Program Files\Apache Software Foundation\Tomcat 7.0\mywebapp\MyApplication"
path=""
reloadable="true"
/>
This is to load my webapp in the root context.
But now I’m confused as to where to put the robots.txt and sitemap.xml files. When I put in under C:\Program Files\Apache Software Foundation\Tomcat 7.0\mywebapp\MyApplication, it doesn’t show up.
I’ve also tried placing it inside C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\ROOT , just in case. But nothing works. I’m still getting 404 not found.
Can anyone please guide.
p.s. My web application runs fine. It’s just that my robots.txt file is unreachable.
EDIT
My web.xml file:
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy
</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
It should be in your context directory
mywebapp\MyApplicationjust where you will have your web-inf directory,index.html etc.
UPDATE:
As per our discussion all urls are handled by Spring MVC DelegatingFilterProxy , so you need to exclude *.txt from this filter somehow, may be by extending DelegatingFilterProxy and configuring that filter in web.xml
SOLUTION: I can server static content through this hack in Spring MVC:
Saved me a ton of headache. 🙂 Writing it for anyone else to benefit from.