关于struts2的error filterStart问题的解决

关于struts2的error filterStart问题的解决eclipse下部署好项目启动的时候出现errorfilterStart错误,参考了网上的资料,发现很多人遇到。有一篇帖子帮到了我。是关于这个问题的总结。根据那个帖子的提示,我认为是我的tomcat安装路径的问题。我的tomcat安装在了d:\programfiles下,后来我将tomcat移到了D盘根目录下重新部署启动,问题就没有了。至于为什么会这样,那个帖子上有一个解释,但是我不是太明白。

大家好,又见面了,我是你们的朋友全栈君。

eclipse下部署好项目启动的时候出现error filterStart错误,参考了网上的资料,发现很多人遇到。有一篇帖子帮到了我。是关于这个问题的总结。根据那个帖子的提示,我认为是我的tomcat安装路径的问题。我的tomcat安装在了d:\program files下,后来我将tomcat移到了D盘根目录下重新部署启动,问题就没有了。至于为什么会这样,那个帖子上有一个解释,但是我不是太明白。不过问题已经解决了,我却没有继续深究的欲望。请原谅我的不求甚解。

原帖地址: http://polaris.blog.51cto.com/1146394/397770


原帖内容如下:

今天一位网友让polaris帮忙解决一些jqGrid的问题。在polaris部署运行其工程时,却抛出Struts2 Error filterStart异常,也就是根本连tomcat都启动不了。

由于polaris在初学Struts2的时候就遇到过该问题,之后也陆陆续续遇到过不少次,今天又遇到了此问题,而且按以前的解决方法该问题依然 存在。当然最后把该问题还是解决了。这个问题相信很多人都遇到过,各种情况可能也不一样,于是polaris在此对该问题做一个总结,一来作为以后查阅, 二来也可以给遇到此问题的人一个参考。

1、Error filterStart异常的详细堆栈信息

2010-9-26 20:28:25 org.apache.catalina.core.StandardContext filterStart
严重: Exception starting filter struts2
java.lang.NullPointerException
at com.opensymphony.xwork2.util.FileManager$FileRevision.needsReloading(FileManager.java:209)
at com.opensymphony.xwork2.util.FileManager.fileNeedsReloading(FileManager.java:60)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.needsReload(XmlConfigurationProvider.java:325)
……
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
2010-9-26 20:28:25 org.apache.catalina.core.StandardContext start
严重: Error filterStart
2010-9-26 20:28:25 org.apache.catalina.core.StandardContext start
严重: Context [/jqgridTest] startup failed due to previous errors
2010-9-26 20:28:25 org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap
严重: A web application created a ThreadLocal with key of type [null] (value [com.opensymphony.xwork2.inject.ContainerImpl$10@1f7e273]) and a value of type [java.lang.Object[]] (value [[Ljava.lang.Object;@1342572]) but failed to remove it when the web application was stopped. To prevent a memory leak, the ThreadLocal has been forcibly removed.
2010-9-26 20:28:25 org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap
严重: A web application created a ThreadLocal with key of type [null] (value [com.opensymphony.xwork2.inject.ContainerImpl$10@869e8f]) and a value of type [java.lang.Object[]] (value [[Ljava.lang.Object;@13ccea]) but failed to remove it when the web application was stopped. To prevent a memory leak, the ThreadLocal has been forcibly removed.
2010-9-26 20:28:25 org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap
严重: A web application created a ThreadLocal with key of type [null] (value [com.sun.faces.config.ConfigureListener$1@1f23ca4]) and a value of type [null] (value [null]) but failed to remove it when the web application was stopped. To prevent a memory leak, the ThreadLocal has been forcibly removed.

polaris注:中间有省略,异常可能不完全一样,但大概就是这个样子。

2、解决方法总结

2.1 解决方法一

初学Struts2的时候,很容易遇到该问题。这个时候,首先查看导入的JAR包是否正确,一般是少导入了什么JAR包。记得当初在学Struts2的时候,polaris就遇到导入JAR包的问题,可参看polaris早时刚学Struts2时在百度空间上写的文章《解决struts2 中Error filterStart 问题》。

2.2 解决方法二

进入公司后,遇到了类似的问题。其实这个问题可能跟Struts2没关系,不过还是在此提一下。大概的问题是:程序编译出问题,或者通过 Eclipse将程序部署到Tomcat后,启动Tomcat报错。当时遇到此问题感觉很是奇怪,因为在同事电脑上一切都正常。后来才发现,原来这是通过 SVN导致的:由于每个人的classpath路径不一样(Eclipse中有一个文件.classpath),第一次通过将工程上传到SVN后,会上传 该文件(不上传也会有此问题),这样其他人从SVN上下载该工程时,classpath和自己机子上的不一样,导致找不到jar包,自然就会编译出问题, 或者部署出问题。解决方法是将所有的JAR包重新导入一次。如图:
Struts2 | 北极星为您引航
将这些jar包全部删除,然后点击add jars,在当前工程的lib目录下将所有的jar导入进来。记得有时候还可能需要重新设置JDK,因为JDK各个人的名称可能不一样,如jdk1.6, jdk1.6.0.3之类的,这样也会导致编译出错。

2.3 解决方法三

遇到此问题另外一个要想到的问题是配置文件是否有问题。首先当然是web.xml文件,要确保Struts2过滤器配置无误;然后是struts.xml配置文件。

今天polaris遇到的问题就是struts.xml引起的问题。该网友他部署的时候是没有问题的,他在该配置文件中启用了devMode模式。 然后,我将其禁用掉,发现问题解决。然而,虽然解决了问题,却有疑问:为啥网友的机子上不会有问题?这个时候想到了“空格”问题:polaris的 Tomcat安装在Program Files目录中。通过与网友一确认,他的Tomcat安装目录没有空格。

以下来源于网络:devMode模式是开发模式,开启它则默认开启了i18n.reload、configuration.xml.reload。 这个错误是由于configuration.xml.reload设置为true倒导致的,网上的资料没有说明原因及解决办法,有人说这是2.16版本的 BUG,tomcat的安装路径包含空格,你可以使用更高级的版本或将Tomcat安装到没有空格的路径中来避免这个错误。

3、说明

以上是对Struts2 Error filterStart异常的一个总结。如果您遇到该问题,而以上方法没法解决,可以留言或联系polaris,或者您对该问题有其他的解决方法也可留言告之,谢谢。

本文初稿完成于2010/9/26 23:02

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/157470.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Floyed理解「建议收藏」

    Floyed理解「建议收藏」Floyed理解 Floyd算法的本质是动态规划,其转移方程为:f(k,i,j)=min(f(k-1,i,j),f(k-1,i,k)+f(k-1,k,j))。f(k-1,i,j)表示经过前k-1个点f(k-1,i,k)+f(k-1,k,j)表示经过k这个点f(k,i,j)表示路径除开起点i与终点j,只经过前k个点中的某些点,从i到j的最小值。计算这个值只需要考…

    2022年6月29日
  • 13款国内外知名PHP集成环境的优缺点分析,PHP集成环境推荐、PHP绿色集成环境推荐「建议收藏」

    13款国内外知名PHP集成环境的优缺点分析,PHP集成环境推荐、PHP绿色集成环境推荐「建议收藏」在本地测试网站,有个集成环境直接测试还是蛮方便的,下面向各位推荐国内和国外各种牛逼的php集成环境 排名不分先后! Xampp集成环境下载解压就能使用了,还支持苹果系统,溜的飞起。英文界面,用着B格也提高了不少。优点:支持的系统多啊,软件使用简单,可视化界面缺点:没有集成VC运行库,遗憾  然后就是老牌的apm

    2022年6月28日
  • 异步fifo的工作原理(netty异步方法)

    FPGA(一):异步FIFO实现(包含源码和仿真文件)一、异步FIFO的重要参数及其作用1、FIFO:FirstInputFirstOutput,即先入先出队列,本质是RAM。FIFO有几个最重要的参数:2、wr_clk:写时钟,所有与写有关的操作都是基于写时钟;3、rd_clk:读时钟,所有与读有关的操作都是基于读时钟;4、FIFO_WIDTH:FIFO的位宽,即FIFO中每个地址对应的数据的位宽;5、FIFO_DEPTH:FIFO的深度,即FIFO中能存入多少个(位宽为FIFO_

    2022年4月13日
  • Ubuntu安装python3和pip3

    Ubuntu安装python3和pip31、下载安装包:Python官网下载选择对应的版本下载.tgz文件。2、解压文件,进入文件夹。在终端运行:./configure编译:make测试:maketest安装:sudomakeinstall如果安装出现:make:***[install]Error1不用管。运行:python3.7.33.7.3是我安装的版本,将版本号换成自己的,能进入python环境就说明安装成功了。3、设置为默认的版本python指向python3.7.3。删除原有的链接:sudorm/u

    2022年6月23日
  • UML–活动图详解

    UML–活动图详解活动图活动图是状态机的一个特殊例子,它强调计算过程中的顺序和并发步骤。活动图所有或多数状态都是活动状态或动作状态,所有或大部分的转换都由原状态中完成的活动触发。活动图的含义活动图是一种用于描述系统行为的模型视图,它可用来描述动作和动作导致对象状态改变的结果,而不用考虑引发状态改变的事件。通常,活动图记录单个操作或方法的逻辑、单个用例或商业过程的逻辑流程。在UML中,活动图的起点用来描述活动…

    2022年4月30日
  • jedis连接池:JedisPool[通俗易懂]

    jedis连接池:JedisPool[通俗易懂]jedis连接池:JedisPool使用:1.创建JedisPool连接池对象2.调用方法getResource()方法获取Jedis连接//0.创建一个配置对象JedisPoolConfigconfig=newJedisPoolConfig();config.setMaxTotal(50);config.setMaxIdle(10);//1.创建Jedis连接池对象JedisPooljedisPool=newJe

    2022年9月5日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号