Struts2 过滤器在启动时异常
今天在做一个Struts2的一个测试,但是不想使用myeclipse自带的Struts2的jar包自动导入,那样子的话会有很多jar包导入到项目中,但是用不到,所以项目就会显得非常臃肿。当时我导入到lib下面的jar包都有:1、struts2-core-2.1.8.1.jar
2、ognl-2.7.3.jar
3、commons-logging.jar
4、freemarker-2.3.15.jar
5、log4j-1.2.9.jar
但是当tomcat启动的时候,总是报这个错误:
Unable to load configuration. - bean - jar:file:/C:/struts2/struts2/WebRoot/WEB-INF/lib/struts2-convention-plugin-2.1.6.jar!/struts-plugin.xml:30:119
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:58)
at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:360)
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:403)
at org.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.java:190)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:223)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:304)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:77)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3634)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4217)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
at org.apache.catalina.core.StandardService.start(StandardService.java:450)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)
搞了好久没搞明白是为什么,后来终于查出来了,因为我用的struts2的版本是2.1的。在struts2加载的时候会加载一个叫fileupload的拦截器。
所以你最初加的包里面必须有fileupload的jar包。可以在apache的官网上commons里下载。这是2.1.6里才出现的问题。所以它才会报错无法加载xml文件。在这里做个标记而已。