<static-resources-list> directive fails with directories
--------------------------------------------------------
Key: CXF-4190
URL: https://issues.apache.org/jira/browse/CXF-4190
Project: CXF
Issue Type: Bug
Components: Services, Transports
Affects Versions: 2.5, 2.4
Environment: CXF/Spring on Tomcat 6.x
Reporter: IngyHere
The "static-resources-list" directive is provided as an alternative to serve
static content through the service root and as an alternative to flying one's
own DispatcherServlet. Unfortunately, it works only for files. This leads to
the situation where people are going nuts trying to make workarounds when they
set their base url-pattern directive to something like "/*" or they simply want
to serve content directly under the service path. (See
http://java-espresso.blogspot.com/2011/09/webxml-problem-and-solution-for-url.html
for a comparable situation.)
The code at "org.apache.cxf.transport.servlet.AbstractHTTPServlet" in
"serveStaticContent" provides an immediate check for content with
{code:title=Snippet|borderStyle=dashed}
InputStream is = super.getServletContext().getResourceAsStream(pathInfo);
if (is == null) {
throw new ServletException("Static resource " + pathInfo + " is not
available");
}
{code}
and, when this fails due a directory being passed in through the request, it's
exception time.
An algorithm for serving static content should be implemented that assumes
without an extension that the item passed in is a directory (and/or checks
first for a trailing slash) and then attempts to serve up the name of the
welcome file in the directory.
Alternately, this could all be just passed off to DefaultDispatcher to let it
handle the edge cases.
Basically, this bug makes the "static-resources-list" directive effectively
useless.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira