Unable to load configuration. - action 解决方案(struts 2 学习笔记)

本文解决了Struts2中因配置文件错误导致的Unable to load configuration问题,详细介绍了错误原因及修正方法。
 

Unable to load configuration. - action 解决方案(struts 2 学习笔记)

标签: strutsactionexceptionfilefilterlogin
  18004人阅读  评论(2)  收藏  举报

  这几天刚刚才是 学习 struts 2.1.6 其中碰到了一些错误   但也得到解决 不过很愿意将这些 错误 记录下来 作为进步的标识   也和大家一同分享一下 学习的乐趣

[java]  view plain  copy
  1. <package name="strutsaqs" extends="struts-default">  
  2.     <action name="Login" class="huate.LoginAction">  
  3.         <result name="error">/error.jsp</result>  
  4.     </action>  
  5. </package>  

由于手误将上面代码中的

[java]  view plain  copy
  1. <result name="error">/error.jsp</result>  

敲些成了

[java]  view plain  copy
  1. <result type="error">/error.jsp</result>  

故导致了线面的错误:

[java]  view plain  copy
  1. 严重: Exception starting filter struts2  
  2. Unable to load configuration. - action - file:/E:/Workspaces/MyEclipse9/struts2/apache-tomcat-7.0.5/webapps/Struts2_2000_StrutsTags/WEB-INF/classes/struts.xml:14:71  
  3.     at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:58)  
  4.     at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:360)  
  5.     at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:403)  
  6.     at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:69)  
  7.     at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:48)  
  8.     at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:273)  
  9.     at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:254)  
  10.     at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:372)  
  11.     at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:98)  
  12.     at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4405)  
  13.     at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5037)  
  14.     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:140)  
  15.     at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:812)  
  16.     at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:787)  
  17.     at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:570)  
  18.     at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1010)  
  19.     at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:933)  
  20.     at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:468)  
  21.     at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1267)  
  22.     at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:308)  
  23.     at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)  
  24.     at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:89)  
  25.     at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:328)  
  26.     at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:308)  
  27.     at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1043)  
  28.     at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:738)  
  29.     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:140)  
  30.     at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1035)  
  31.     at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:289)  
  32.     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:140)  
  33.     at org.apache.catalina.core.StandardService.startInternal(StandardService.java:442)  
  34.     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:140)  
  35.     at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:674)  
  36.     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:140)  
  37.     at org.apache.catalina.startup.Catalina.start(Catalina.java:596)  
  38.     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
  39.     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)  
  40.     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)  
  41.     at java.lang.reflect.Method.invoke(Method.java:597)  
  42.     at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:303)  
  43.     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:431)  
  44. Caused by: Error building results for action tags in namespace  - action - file:/E:/Workspaces/MyEclipse9/struts2/apache-tomcat-7.0.5/webapps/Struts2_2000_StrutsTags/WEB-INF/classes/struts.xml:14:71  
  45.     at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addAction(XmlConfigurationProvider.java:366)  
  46.     at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:460)  
  47.     at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:265)  
  48.     at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:111)  
  49.     at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:189)  
  50.     at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:55)  
  51.     ... 40 more  
  52. Caused by: There is no result type defined for type 'tag' mapped with name 'success'.  Did you mean 'tag'? - result - file:/E:/Workspaces/MyEclipse9/struts2/apache-tomcat-7.0.5/webapps/Struts2_2000_StrutsTags/WEB-INF/classes/struts.xml:15:32  
  53.     at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.buildResults(XmlConfigurationProvider.java:613)  
  54.     at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addAction(XmlConfigurationProvider.java:364)  
  55.     ... 45 more  
  56. 2011-10-24 11:36:09 org.apache.catalina.core.StandardContext startInternal  
  57. 严重: Error filterStart  


0
1
 
 
猜你在找
JavaWeb基础核心技术
Struts2视频_全面开战
玩转Spring
JavaWeb程序设计
零基础学Java系列从入门到精通
Struts2x异常 Unable to load configuration - action strutsxml或者struts-default
struts 2学习有关Unable to load bean 的Bug
严重 Dispatcher initialization failed Unable to load configuration异常解决方案
Unable to load configuration解决方案
struts 2学习有关Unable to load bean type classcomopensymphonyxwork2ObjectFactory的错误
id="iframeu1607657_0" src="http://pos.baidu.com/mcbm?sz=728x90&rdid=1607657&dc=2&di=u1607657&dri=0&dis=0&dai=2&ps=2670x232&coa=at%3D3%26rsi0%3D728%26rsi1%3D90%26pat%3D6%26tn%3DbaiduCustNativeAD%26rss1%3D%2523FFFFFF%26conBW%3D1%26adp%3D1%26ptt%3D0%26titFF%3D%2525E5%2525BE%2525AE%2525E8%2525BD%2525AF%2525E9%25259B%252585%2525E9%2525BB%252591%26titFS%3D%26rss2%3D%2523000000%26titSU%3D0%26ptbg%3D90%26piw%3D0%26pih%3D0%26ptp%3D0&dcb=BAIDU_SSP_define&dtm=BAIDU_DUP_SETJSONADSLOT&dvi=0.0&dci=-1&dpt=none&tsr=0&tpr=1467697390284&ti=Unable%20to%20load%20configuration.%20-%20action%20%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88%EF%BC%88struts%202%20%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0%EF%BC%89%20-&ari=1&dbv=2&drs=3&pcs=1020x529&pss=1020x3459&cfv=0&cpl=4&chi=1&cce=true&cec=UTF-8&tlm=1467697390&rw=529&ltu=http%3A%2F%2Fblog.youkuaiyun.com%2Ftianshan2008%2Farticle%2Fdetails%2F6900096&ltr=https%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3DxL1L544djJXsY9naLelxEYun9Oqru9PB0Afv_l93FzhEMRY-fXOYAmifmT8dMiAcTHVQ8_j7vPq14OzXFLQGoXUFQ0J9HYO3akbvObYD4Jm%26wd%3D%26eqid%3D8300116800000bc600000005577b48ec&ecd=1&psr=1920x1080&par=1920x1040&pis=-1x-1&ccd=24&cja=false&cmi=6&col=zh-CN&cdo=-1&tcn=1467697390&qn=6bbfedaff442a496&tt=1467697390270.19.168.169" width="728" height="90" align="center,center" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" allowtransparency="true" style="border-width: 0px; border-style: initial; vertical-align: bottom; margin: 0px;">
查看评论
2楼  堕落梦醒 2015-04-08 17:34发表 [回复]
这种错误还有可能是类名写错了,不能反射出对象
1楼  sqw314 2012-12-06 09:55发表 [回复]
可以尝试删除E:/Workspaces/MyEclipse9/struts2/apache-tomcat-7.0.5/webapps/下的Struts2_2000_StrutsTags文件夹。
我也不知道什么原因,也出现过类似的情况,删除重新建立一个工程

<think>好的,我现在需要处理用户提供的日志错误信息。首先,用户展示了两条日志记录,分别是关于没有检测到Spring WebApplicationInitializer类型和Struts2过滤器启动异常的问题。用户可能是在部署Java Web应用时遇到了启动错误,需要帮助分析原因并提供解决方案。 首先看第一条日志:“No Spring WebApplicationInitializer types detected on classpath”。这个信息通常出现在使用Spring框架时,尤其是当应用尝试通过Servlet 3.0+的容器(如Tomcat)进行初始化时。WebApplicationInitializer是Spring用来替代传统web.xml配置的接口。如果应用中没有实现该接口的类,或者类没有被正确扫描到,就会记录这个信息。这可能意味着用户的Spring配置有问题,或者相关依赖没有正确添加到类路径中。但有时候这个信息可能只是一个警告,如果应用没有使用基于Java的Spring配置,而是仍然使用XML配置,那么这个信息可以忽略。不过需要结合应用的实际行为来判断是否需要处理。 接下来看第二条更严重的错误:“启动过滤器异常[struts2],Unable to load configuration. - bean - jar:file:...struts2-gxp-plugin-2.5.26.jar!/struts-plugin.xml:27:162”。这里的关键是Struts2在加载配置文件时遇到了问题,具体是在struts2-gxp-plugin插件中的struts-plugin.xml文件的第27行162列。可能的原因包括插件版本不兼容、配置文件语法错误、依赖冲突或缺失,或者类加载问题。 首先需要确定struts2-gxp-plugin的作用。GXP插件通常用于与Google的GXP模板集成,但可能用户的应用中并没有使用到这个功能,导致插件加载失败。如果确实不需要该插件,可以从依赖中移除,比如在Maven的pom.xml中排除或删除对应的JAR包。如果确实需要,则需要检查插件版本是否与Struts2核心库版本兼容,例如Struts2的版本是否也是2.5.26,或者是否存在已知的兼容性问题。此外,检查struts-plugin.xml文件的第27行是否有语法错误或配置错误,比如XML标签未正确闭合或属性值错误。 另外,依赖冲突也是一个常见问题。例如,可能有不同版本的Struts2库或其他依赖库(如XWork、OGNL等)导致冲突。使用Maven的依赖树分析工具(如mvn dependency:tree)可以帮助识别冲突。同时,确保所有Struts2相关的插件和核心库版本一致。 类路径问题也可能导致类加载失败,比如相关的类文件没有正确打包到WAR文件中,或者路径错误。检查构建输出(如out/artifacts目录)中的WEB-INF/lib目录,确认所有必要的JAR文件都存在,并且没有重复或错误版本。 综合来看,用户的问题可能集中在Struts2的插件配置和依赖管理上。需要优先解决第二个严重错误,因为它会导致应用无法启动。而第一个关于Spring的警告可能需要根据实际情况处理,如果应用确实使用了Spring的Java配置,则需要检查相关配置和依赖;否则可以暂时忽略。 可能的解决步骤包括:移除不必要的struts2-gxp-plugin插件;检查并统一Struts2相关依赖的版本;清理和重新构建项目以确保所有依赖正确打包;检查struts.xml和其他配置文件中的语法错误;以及确保类路径正确无误。此外,查看完整的日志文件,寻找更多的错误线索,也有助于定位问题根源。</think>这个日志信息反映了Java Web应用启动时遇到的配置问题,主要涉及Spring框架初始化告警和Struts2插件加载失败两个问题。以下是分步解析和解决方案--- ### 一、Spring框架初始化告警 **日志内容** `No Spring WebApplicationInitializer types detected on classpath` #### 原因分析 1. 当使用**Servlet 3.0+容器**(如Tomcat 8+)时,Spring会通过`WebApplicationInitializer`接口替代传统的`web.xml`配置。 2. 此信息表示: - 应用未使用基于Java的Spring配置(仍用XML配置),或 - 相关实现类未被正确扫描到(如包路径配置错误)。 #### 解决方案 1. **如果使用XML配置**:可忽略此警告,检查`web.xml`中是否正确配置了`ContextLoaderListener`和`DispatcherServlet`。 2. **如果使用Java配置**: - 确认存在实现`WebApplicationInitializer`的类,例如: ```java public class MyWebAppInitializer implements WebApplicationInitializer { @Override public void onStartup(ServletContext container) { // 初始化Spring配置 } } ``` - 检查类路径扫描配置(如`@ComponentScan`)是否包含该类的包路径。 --- ### 二、Struts2插件加载失败(关键错误) **日志内容** `启动过滤器异常[struts2]` `Unable to load configuration. - bean - jar:file:...struts2-gxp-plugin-2.5.26.jar!/struts-plugin.xml:27:162` #### 原因分析 1. **插件版本不兼容**:`struts2-gxp-plugin-2.5.26.jar`与当前Struts2核心库版本不一致。 2. **配置语法错误**:插件配置文件`struts-plugin.xml`第27行存在XML语法错误。 3. **依赖冲突**:其他依赖库(如XWork、OGNL)版本与Struts2插件冲突。 4. **插件未使用但未排除**:应用中未使用GXP模板功能,但插件仍被加载。 --- #### 解决方案步骤 ##### 1. **移除不必要的插件** - 在`pom.xml`中移除或排除`struts2-gxp-plugin`依赖: ```xml <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-core</artifactId> <version>2.5.26</version> <exclusions> <exclusion> <groupId>org.apache.struts</groupId> <artifactId>struts2-gxp-plugin</artifactId> </exclusion> </exclusions> </dependency> ``` ##### 2. **统一Struts2版本** - 确保所有Struts2相关依赖版本一致(如`struts2-core`, `struts2-json-plugin`等): ```xml <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-core</artifactId> <version>2.5.26</version> </dependency> ``` ##### 3. **检查XML配置文件** - 打开`struts2-gxp-plugin-2.5.26.jar`中的`struts-plugin.xml`,定位第27行: - 检查XML标签闭合、属性值格式是否正确。 - 示例错误:未闭合的`<bean>`标签或非法字符。 ##### 4. **解决依赖冲突** - 运行`mvn dependency:tree`分析依赖树: ```bash mvn dependency:tree -Dincludes=com.opensymphony:xwork,ognl ``` - 排除冲突的依赖: ```xml <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-core</artifactId> <version>2.5.26</version> <exclusions> <exclusion> <groupId>org.javassist</groupId> <artifactId>javassist</artifactId> </exclusion> </exclusions> </dependency> ``` ##### 5. **清理并重新构建项目** - 删除`out/artifacts`目录,执行Maven清理和重新打包: ```bash mvn clean package ``` --- ### 三、验证结果 1. 重新部署应用,观察日志中是否仍报`struts2`异常。 2. 若问题未解决,检查Tomcat日志文件(如`catalina.out`)获取更详细的错误堆栈。 --- ### 附:常见依赖冲突库 | 库名称 | 推荐版本 | 冲突表现 | |--------------|---------------|------------------------| | XWork | 2.2.3 | 类找不到/方法不存在 | | OGNL | 3.1.28 | 表达式解析失败 | | Javassist | 3.28.0-GA | 动态代理生成错误 | 通过以上步骤应能解决Struts2插件加载问题,Spring告警需根据实际配置决定是否需要处理。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值