This may or may not be the reason you're having problems.
In
J2EE webapps, there are 2 types of paths that
look a lot alike, but actually refer to very different things.
A
URL path is what a client would enter to navigate to a specific URL processor - for example, the Struts Action.
A
Resource path is the relative "file" location of a resource within a web application (WAR).
The confusion comes from 2 places. First, both types of paths like to look like filesystem directory paths with "/" to delineate "directory" names. Secondly, the default action in J2EE when presented with a URL path that cannot be resolved (via a web.xml URL-to-servlet mapping or as the location of a JSP) is to snip out the part of the URL that follows the host and context and use it as a resource path, copying the resource it finds at that location (or displaying "404 not found").
The web.xml file has a number of local URL paths in it - for example - the login and loginfail pages are URL paths. However, a lot of code uses resource paths. Worse, there are 2 different ways to include external content into a JSP, and one of the uses a URL path and another uses a resource path!
One thing is for certain. A URL path request for anything under WEB-INF will always fail. The WEB-INF directory is completely and unconditionally hidden from URL access mechanisms as are all its sub-components. This is a valuable way of keeping Bad People out the the classes and other critical internal resources of the webapp. Anything under WEB-INF must be requested as a resource, not via a URL.