Details
-
Bug
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
2.2.1
-
None
-
windows xp, spring 2.5, tomcat 5.0.28, struts2-convention-plugin-2.2.1.jar
Description
I set a convention constant like this below:
==========================================================================================
<constant name="struts.convention.result.path" value="/WEB-INF/jsp" />
==========================================================================================
After I deployed my project to tomcat server, I backup a file "search.jsp" and named the backup file with "search.jsp.bak", There is a class named with "SearchAction"。The action's search method is annotated by @Action, like this:
==========================================================================================
@Action(value = "search", results =
)
==========================================================================================
When I startup tomcat server, I recieved some message:
==========================================================================================
Unable to find a result type for extension [bak] in location attribute [/WEB-INF/jsp/search.jsp.bak]. - [unknown location]
==========================================================================================
Then I checked org.apache.struts2.convention.DefaultResultMapBuilder.java, I found this exception throwing at line 527。
I debug that snippet, At line 269, I found some problems,ServletContext.getResourcePaths() method will scan a directory and its sub-directory and return all files in these directories, If a file's extension is not jsp, jspx,vm,ftl,html or htm。 I would get the error。
So I think this code need to be change to fix this problem。