【问题标题】:SEVERE: Exception starting filter struts2 Unable to load configuration. - bean - jar:file:struts2-core-2.2.3.jar!/struts-default.xml:29:72严重:异常启动过滤器 struts2 无法加载配置。 - bean - jar:file:struts2-core-2.2.3.jar!/struts-default.xml:29:72
【发布时间】:2015-10-01 04:05:01
【问题描述】:

struts.xml

struts.xml 文件我已经写好了

    <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd">
    
    <struts>
        <constant name="struts.devMode" value="true" />
    
        <package name="default" extends="struts-default" namespace="/">
    
        </package>
    </struts>

web.xml 文件我已经写好了

    <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
        http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
        <filter>
            <filter-name>struts2</filter-name>
            <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
        </filter>
        <filter-mapping>
            <filter-name>struts2</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
        <welcome-file-list>
            <welcome-file>index.jsp</welcome-file>
        </welcome-file-list>
    </web-app>

我在web-inf/lib获取的jar文件

  • commons-beanutils-1.7.0.jar
  • commons-collections-3.2.1.jar
  • commons-digester-1.8.jar
  • commons-fileupload-1.2.2.jar
  • commons-io-2.0.1.jar
  • commons-lang-2.5.jar
  • commons-logging-1.1.1.jar
  • commons-validator-1.3.1.jar
  • freemarker-2.3.16.jar
  • ognl-3.0.1.jar
  • struts2-core-2.2.3.jar
  • xwork-core-2.2.3.jar

当我要在 eclispe 中运行它时会出错

错误

>>>SEVERE: Dispatcher initialization failed
>>>Unable to load configuration. - bean - jar:file:/F:/m/.metadata/.me_tcat/webapps/project/WEB-INF/lib/struts2-core-2.2.3.jar!/struts-default.xml:29:72
>>> 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)
>>> at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:69)
>>> at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:51)
>>> at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275)
>>> at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:397)
>>> at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:108)
>>> at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3693)
>>> at org.apache.catalina.core.StandardContext.start(StandardContext.java:4340)
>>> at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
>>> at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
>>> at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
>>> at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:920)
>>> at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:883)
>>> at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
>>> at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
>>> at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
>>> at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
>>> at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
>>> at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
>>> at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
>>> at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
>>> at org.apache.catalina.core.StandardService.start(StandardService.java:516)
>>> at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
>>> at org.apache.catalina.startup.Catalina.start(Catalina.java:566)
>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>> at java.lang.reflect.Method.invoke(Method.java:597)
>>> at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
>>> at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
>>>Caused by: Unable to load bean: type: class:com.opensymphony.xwork2.ObjectFactory - bean - jar:file:/F:/m/.metadata/.me_tcat/webapps/project/WEB-INF/lib/struts2-core-2.2.3.jar!/struts-default.xml:29:72
>>> at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.register(XmlConfigurationProvider.java:221)
>>> at org.apache.struts2.config.StrutsXmlConfigurationProvider.register(StrutsXmlConfigurationProvider.java:101)
>>> at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:169)
>>> at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:55)
>>> ... 31 more
>>>Caused by: Bean type class com.opensymphony.xwork2.ObjectFactory with the name xwork has already been loaded by bean - jar:file:/F:/m/.metadata/.me_tcat/webapps/project/WEB-INF/lib/struts2-core-2.1.8.1.jar!/struts-default.xml:29:72 - bean - jar:file:/F:/m/.metadata/.me_tcat/webapps/project/WEB-INF/lib/struts2-core-2.2.3.jar!/struts-default.xml:29:72
>>> at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.register(XmlConfigurationProvider.java:205)
>>> ... 34 more
>>>Jan 30, 2014 11:57:43 AM org.apache.catalina.core.StandardContext filterStart
>>>SEVERE: Exception starting filter struts2
>>>Unable to load configuration. - bean - jar:file:/F:/m/.metadata/.me_tcat/webapps/project/WEB-INF/lib/struts2-core-2.2.3.jar!/struts-default.xml:29:72
>>> at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:431)
>>> at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:69)
>>> at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:51)
>>> at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275)
>>> at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:397)
>>> at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:108)
>>> at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3693)
>>> at org.apache.catalina.core.StandardContext.start(StandardContext.java:4340)
>>> at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
>>> at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
>>> at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
>>> at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:920)
>>> at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:883)
>>> at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
>>> at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
>>> at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
>>> at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
>>> at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
>>> at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
>>> at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
>>> at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
>>> at org.apache.catalina.core.StandardService.start(StandardService.java:516)
>>> at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
>>> at org.apache.catalina.startup.Catalina.start(Catalina.java:566)
>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>> at java.lang.reflect.Method.invoke(Method.java:597)
>>> at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
>>> at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
>>>Caused by: Unable to load configuration. - bean - jar:file:/F:/m/.metadata/.me_tcat/webapps/project/WEB-INF/lib/struts2-core-2.2.3.jar!/struts-default.xml:29:72
>>> 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)
>>> ... 29 more
>>>Caused by: Unable to load bean: type: class:com.opensymphony.xwork2.ObjectFactory - bean - jar:file:/F:/m/.metadata/.me_tcat/webapps/project/WEB-INF/lib/struts2-core-2.2.3.jar!/struts-default.xml:29:72
>>> at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.register(XmlConfigurationProvider.java:221)
>>> at org.apache.struts2.config.StrutsXmlConfigurationProvider.register(StrutsXmlConfigurationProvider.java:101)
>>> at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:169)
>>> at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:55)
>>> ... 31 more
>>>Caused by: Bean type class com.opensymphony.xwork2.ObjectFactory with the name xwork has already been loaded by bean - jar:file:/F:/m/.metadata/.me_tcat/webapps/project/WEB-INF/lib/struts2-core-2.1.8.1.jar!/struts-default.xml:29:72 - bean - jar:file:/F:/m/.metadata/.me_tcat/webapps/project/WEB-INF/lib/struts2-core-2.2.3.jar!/struts-default.xml:29:72
>>> at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.register(XmlConfigurationProvider.java:205)
>>> ... 34 more
>>>Jan 30, 2014 11:57:43 AM org.apache.catalina.core.StandardContext start
>>>SEVERE: Error filterStart
>>>Jan 30, 2014 11:57:43 AM org.apache.catalina.core.StandardContext start
>>>SEVERE: Context [/project] startup failed due to previous errors

【问题讨论】:

    标签: jakarta-ee struts2


    【解决方案1】:

    您的问题已在堆栈跟踪中提到:

    Caused by: Bean type class com.opensymphony.xwork2.ObjectFactory with the name xwork has
     already been loaded by bean - jar:file:/F:/m/.metadata/.me_tcat/webapps/project/WEB-INF
    /lib/struts2-core-2.1.8.1.jar!/struts-default.xml:29:72 - bean - jar:file:/F:/m/.metadata
    /.me_tcat/webapps/project/WEB-INF/lib/struts2-core-2.2.3.jar!/struts-default.xml:29:72
    

    您的WEB-INF/lib 目录中似乎有多个struts2-core-*.jar 副本。我认为你应该只拥有其中之一。做一些清理工作。另请查看您的.classpath 是否没有重复条目。

    【讨论】:

    • 完全正确,重复的罐子给我带来了同样的问题!谢谢!
    【解决方案2】:

    这是一个 jar 问题。您需要下载所有最新的 struts jar。

    尝试以下 jar 库:

    • common-chain-12.jar
    • common-fileupload-1.3.1.jar
    • commons-io-2.2.jar
    • commons-logging-api-1.1.jar

    所有常见的 jar(freemarker.jar、javaassist.jar、ognl.jar、xwork-core.jar、struts2-core.jar)都应该有最新版本。

    特别要确保 xwork 和 struts2 核心 jar 具有相同的版本。在 Java 8 之后,这些 jar 不再是可选的。

    【讨论】:

      【解决方案3】:

      错误是直截了当的:

      类 com.opensymphony.xwork2.ObjectFactory 具有名称 xwork 已经被 bean 加载了。

      您是否已将 struts2-core-X.X.X.X.jar 添加到您的服务器类路径中?以及项目构建路径。

      如果是,则删除。它会起作用的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-04-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-29
        • 2016-02-17
        • 2015-09-03
        相关资源
        最近更新 更多