[ 
https://issues.apache.org/jira/browse/WW-3564?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13028713#comment-13028713
 ] 

Johannes Geppert commented on WW-3564:
--------------------------------------

1.) Why is this Issue a Blocker?

2.) I was abble to fix this with changeing following code in method 
createFromResources from 

                if (StringUtils.isBlank(fileName) || 
StringUtils.startsWith(fileName, ".")) {
                    if (LOG.isTraceEnabled())
                        LOG.trace("Ignoring file without name [#0]", path);
                    continue;
                }

to

                if (StringUtils.isBlank(fileName) || 
StringUtils.startsWith(fileName, ".")) {
                    if (LOG.isTraceEnabled())
                        LOG.trace("Ignoring file without name [#0]", path);
                    continue;
                }
                else if(fileName.lastIndexOf(".") > 0){
                    String suffix = 
fileName.substring(fileName.lastIndexOf(".")+1);
                    
                    
if(conventionsService.getResultTypesByExtension(packageConfig).get(suffix) == 
null) {
                        if (LOG.isDebugEnabled())
                            LOG.debug("No result type defined for file suffix : 
[#0]. Ignoring file #1", suffix, fileName);
                        continue;
                    }
                }

Now only Files where a Result Type is defined are processed.

Is this the right way?

> Unable to find a result type for extension
> ------------------------------------------
>
>                 Key: WW-3564
>                 URL: https://issues.apache.org/jira/browse/WW-3564
>             Project: Struts 2
>          Issue Type: Bug
>          Components: Plugin - Convention
>    Affects Versions: 2.2.1
>         Environment: windows xp, spring 2.5, tomcat 5.0.28, 
> struts2-convention-plugin-2.2.1.jar
>            Reporter: Dan Du
>            Assignee: Maurizio Cucchiara
>            Priority: Blocker
>         Attachments: 1.jpg, 11.jpg, 2.jpg, DefaultResultMapBuilder.java
>
>
> 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 = { @Result(name = "search", location = 
> "/WEB-INF/jsp/search.jsp") })
> ==========================================================================================
> 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。

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to