原文: https://howtodoinjava.com/struts2/solved-unable-to-find-a-result-type-for-extension-properties-or-xml/

如果您刚刚开始编写 Struts2 应用,并且正在配置它,那么您可能会遇到此异常。 完整的栈跟踪如下所示:

  1. SEVERE: Dispatcher initialization failed
  2. Unable to load configuration. - [unknown location]
  3. at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:70)
  4. at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:446)
  5. at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:490)
  6. at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:74)
  7. at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:57)
  8. at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:277)
  9. at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:258)
  10. at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:382)
  11. at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:103)
  12. at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4650)
  13. at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5306)
  14. at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
  15. at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
  16. at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
  17. at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
  18. at java.util.concurrent.FutureTask.run(Unknown Source)
  19. at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
  20. at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
  21. at java.lang.Thread.run(Unknown Source)
  22. Caused by: Unable to find a result type for extension [properties] in location attribute [/struts.properties]. - [unknown location]
  23. at org.apache.struts2.convention.DefaultResultMapBuilder$ResultInfo.determineType(DefaultResultMapBuilder.java:513)
  24. at org.apache.struts2.convention.DefaultResultMapBuilder$ResultInfo.<init>(DefaultResultMapBuilder.java:476)
  25. at org.apache.struts2.convention.DefaultResultMapBuilder.makeResults(DefaultResultMapBuilder.java:397)
  26. at org.apache.struts2.convention.DefaultResultMapBuilder.createFromResources(DefaultResultMapBuilder.java:304)
  27. at org.apache.struts2.convention.DefaultResultMapBuilder.build(DefaultResultMapBuilder.java:191)
  28. at org.apache.struts2.convention.PackageBasedActionConfigBuilder.createActionConfig(PackageBasedActionConfigBuilder.java:935)
  29. at org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildConfiguration(PackageBasedActionConfigBuilder.java:718)
  30. at org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildActionConfigs(PackageBasedActionConfigBuilder.java:348)
  31. at org.apache.struts2.convention.ClasspathPackageProvider.loadPackages(ClasspathPackageProvider.java:53)
  32. at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:260)
  33. at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:67)
  34. ... 18 more
  35. Aug 14, 2013 12:24:55 AM org.apache.catalina.core.StandardContext filterStart
  36. SEVERE: Exception starting filter struts2
  37. Unable to load configuration. - [unknown location]
  38. at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:502)
  39. at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:74)
  40. at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:57)
  41. at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:277)
  42. at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:258)
  43. at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:382)
  44. at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:103)
  45. at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4650)
  46. at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5306)
  47. at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
  48. at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
  49. at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
  50. at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
  51. at java.util.concurrent.FutureTask.run(Unknown Source)
  52. at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
  53. at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
  54. at java.lang.Thread.run(Unknown Source)
  55. Caused by: Unable to load configuration. - [unknown location]
  56. at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:70)
  57. at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:446)
  58. at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:490)
  59. ... 16 more
  60. Caused by: Unable to find a result type for extension [properties] in location attribute [/struts.properties]. - [unknown location]
  61. at org.apache.struts2.convention.DefaultResultMapBuilder$ResultInfo.determineType(DefaultResultMapBuilder.java:513)
  62. at org.apache.struts2.convention.DefaultResultMapBuilder$ResultInfo.<init>(DefaultResultMapBuilder.java:476)
  63. at org.apache.struts2.convention.DefaultResultMapBuilder.makeResults(DefaultResultMapBuilder.java:397)
  64. at org.apache.struts2.convention.DefaultResultMapBuilder.createFromResources(DefaultResultMapBuilder.java:304)
  65. at org.apache.struts2.convention.DefaultResultMapBuilder.build(DefaultResultMapBuilder.java:191)
  66. at org.apache.struts2.convention.PackageBasedActionConfigBuilder.createActionConfig(PackageBasedActionConfigBuilder.java:935)
  67. at org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildConfiguration(PackageBasedActionConfigBuilder.java:718)
  68. at org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildActionConfigs(PackageBasedActionConfigBuilder.java:348)
  69. at org.apache.struts2.convention.ClasspathPackageProvider.loadPackages(ClasspathPackageProvider.java:53)
  70. at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:260)
  71. at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:67)
  72. ... 18 more

[已解决]:找不到扩展名`properties`或`xml`的结果类型 - 图1

解决方案

出现此异常是因为为属性“struts.convention.result.path” 配置了错误的路径,该路径通常如下所示:

  1. <constant name="struts.convention.result.path" value="/" />
  2. //or in properties file
  3. struts.convention.result.path=/

好吧,你的路径不正确。 将其更正为 JSP 文件所在的任何有效位置。 例如:

  1. <constant name="struts.convention.result.path" value="/WEB-INF/jsp/" />
  2. //or in properties file
  3. struts.convention.result.path=/WEB-INF/jsp/

它将解决此问题。

祝您学习愉快!