异常启动过滤器struts2

时间:2011-11-07 12:25:10

标签: struts2

异常启动过滤器struts2

Unable to load configuration. - [unknown location]
    at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:431)
    at org.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.java:190)
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:295)
    at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422)
    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:115)
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4072)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4726)
    at org.apache.catalina.startup.HostConfig.checkResources(HostConfig.java:1284)
    at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1382)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:306)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
    at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1389)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1653)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1662)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1642)
    at java.lang.Thread.run(Thread.java:619)
Caused by: Unable to load configuration. - [unknown location]
    at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:58)
    at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:374)
    at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:418)
    ... 15 more
Caused by: Unable to locate parent package [showcase] - [unknown location]
    at org.apache.struts2.convention.PackageBasedActionConfigBuilder.getPackageConfig(PackageBasedActionConfigBuilder.java:887)
    at org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildConfiguration(PackageBasedActionConfigBuilder.java:536)
    at org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildActionConfigs(PackageBasedActionConfigBuilder.java:318)
    at org.apache.struts2.convention.ClasspathPackageProvider.loadPackages(ClasspathPackageProvider.java:53)
    at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:204)
    at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:55)
    ... 17 more

6 个答案:

答案 0 :(得分:2)

发生此问题只是因为您错过了一些struts库文件。请确保所有库文件都包含在构建路径中。

答案 1 :(得分:0)

从错误控制台可以清楚地看到struts2无法加载配置文件,因为管理器无法解析路径。

答案 2 :(得分:0)

我认为你错过了添加struts2 jar ...你可以添加struts2-core-2.1.8.jar然后使用org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter 在配置文件中。

答案 3 :(得分:0)

我在使用Intellij IDE的Windows中遇到了类似的问题。我正在使用tomcat服务器。我复制了所有的Struts2罐子

jquery.chart.struts2.js

if ((o.xaxis && o.xaxis.mode === "categories") || (o.yaxis && o.yaxis.mode === "categories")) { self.require("js/flot/jquery.flot.categories" + self.minSuffix + ".js"); } 文件夹,它可以正常工作。

答案 4 :(得分:0)

异常跟踪意味着您的应用正在尝试查找未在类路径上获取的struts2-core.jar。随之添加库和其他依赖项。如果您已经添加,请确保它在服务器上可用(如果是WEB-INF中的eclipse / lib文件夹,则部署程序集)

如果您正在尝试构建新的Web应用程序,建议您避免手动添加jar,而是使用像apache或gradle这样的构建工具来处理它。 这个过程更加简单和传统。 https://mvnrepository.com/artifact/org.apache.struts/

您也可以尝试使用现成的原型来避免各种启动错误。您可以参考以下链接以供日后使用: https://struts.apache.org/docs/struts-2-maven-archetypes.html

答案 5 :(得分:0)

缺少JAR和重复的JAR是主要原因。我更喜欢对Struts2 MVC应用程序执行以下步骤:

  1. 在Eclipse中创建动态Web应用程序项目(或IDE中的等效项目)
  2. 将所有必需的JAR文件添加到构建路径和WEB-INF / lib文件夹(或服务器所需的相应文件夹)中。我曾经使用过Eclipse Mars + Tomcat 8
  3. 将过滤器标记添加到您的web.xml,将所有URL重定向到StrutsPrepareAndExecuteFilter(这是struts2的最新版本)

      org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
    
  4. 创建必要的视图页

  5. 通过扩展ActionSupport类或实现Action接口创建必要的Action类(我更喜欢前者!)
  6. 创建struts.xml并将其放在上下文根目录的SRC文件夹中*即项目文件夹根目录。将所有action-to-result映射放在此xml文件中。
  7. 仔细检查所有文件,确保所有拼写拼写正确。
  8. 注意:这些是正常研究级别Struts2分配的一般步骤。实际生产代码可能会有所不同。