问题:
项目引入junit单元测试时,报错如下:
java.io.FileNotFoundException: class path resource [WEB-INF/content/global/] cannot be resolved to URL because it does not exist
at org.springframework.core.io.ClassPathResource.getURL(ClassPathResource.java:163)
at org.springframework.core.io.ClassPathResource.getFile(ClassPathResource.java:175)
at org.springframework.mock.web.MockServletContext.getResourcePaths(MockServletContext.java:196)
at org.apache.struts2.convention.DefaultResultMapBuilder.createFromResources(DefaultResultMapBuilder.java:254)
at org.apache.struts2.convention.DefaultResultMapBuilder.build(DefaultResultMapBuilder.java:191)
at org.apache.struts2.convention.PackageBasedActionConfigBuilder.createActionConfig(PackageBasedActionConfigBuilder.java:864)
at org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildConfiguration(PackageBasedActionConfigBuilder.java:636)
at org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildActionConfigs(PackageBasedActionConfigBuilder.java:335)
at org.apache.struts2.convention.ClasspathPackageProvider.loadPackages(ClasspathPackageProvider.java:53)
解决方法:
struts2-convention-plugin-2.3.1.2.jar插件,默认路径为WEB-INF/content/(可以配置:
<constant name="struts.convention.result.path" value="/WEB-INF/content" />
),
按照该插件的映射规则[对于以Action结尾的的类,往掉Action,取剩下的部分,将所有的字母转换为小写,假如有驼峰式的写法,则用”-“连接符来连接不同的单词,这是此插件的默认方式。]说明global可能是GlobalAction,然后项目中找到该action,干掉即可。