Static files in (Java) App Engine not accessible.

Posted by fiXedd on Stack Overflow See other posts from Stack Overflow or by fiXedd
Published on 2009-06-22T11:06:53Z Indexed on 2010/03/17 13:41 UTC
Read the original article Hit count: 243

Filed under:
|
|

The example documentation says that you simply need to place your files in war/ (or a subdirectory) and they should be accessible from the host (as long as they aren't JSPs or in WEB-INF). For example, if you place foo.css in war/ then you should be able to access it at http://localhost:8080/foo.css. However, this isn't working for me at all. NONE of my static files are accessible.

The docs on appengine-web.xml say that you can also specifically denote certain types as static. I've tried this as well and it makes no difference.

Am I missing something obvious?

UPDATE: Turns out one of the mappings in my web.xml was a little too aggressive. The following was the culprit:

<servlet>
	<servlet-name>Main</servlet-name>
	<servlet-class>MainServlet</servlet-class>
</servlet>
<servlet-mapping>
	<servlet-name>Main</servlet-name>
	<url-pattern>/</url-pattern>
</servlet-mapping>

It seems that it was grabbing everything that wasn't grabbed be one of the other rules, which I don't understand because there was no * on the end of the url-pattern. It also seems to be directly contradictory to the documentation that says:

Note: Static files, files that are served verbatim to users such as images, CSS or JavaScript, are handled separately from paths mentioned in the deployment descriptor. A request for a URL path that matches a path to a file in the WAR that's considered a static file will serve the file, regardless of servlet and filter mappings in the deployment descriptor. You can exclude files from those treated as static files using the appengine-web.xml file.

So, how can I have a rule that matches the base of my domain (eg. http://www.example.com/) and still allows the static files to filter through?

© Stack Overflow or respective owner

Related posts about google-app-engine

Related posts about java