Struts2.1.6 bug,启动Tomcat时异常:严重: Exception starting filter struts2

使用struts2.1.6版本时,已搭建好struts2开发环境,程序无任何问题。但是,部署好项目之后,启动Tomcat时Console报错抛出异常:

严重: Exception starting filter struts2 java.lang.NullPointerException

如下图所示:

出现这个错误的原因是:这是struts-2.1.6版本的一个BUG(貌似2.1.8也存在),配置文件中设置了开发者模式,即structs.xml中包含了<constant name="struts.devMode" value="true" />,这时当Tomcat安装目录(从磁盘根目录开始算)存在空格,或者部署项目虚拟路径存在空格,就会抛出此异常。

请注意,这里所说的Tomcat安装目录,指的是从磁盘根目录开始算起,例如:我的Tomcat(压缩版)是放在D盘下面的Program Files文件夹中,所以它的安装目录为:D:\Program Files\apache-tomcat-7.0.56,这里由于“Program Files”中存在一个空格,所以导致了上文所说的启动Tomcat时的异常。我的解决方法是将Tomcat文件包移到D盘根目录下,改变它的安装目录为:D:\apache-tomcat-7.0.56,当然你也可以将它放置到不包含空格的文件夹下。

还有一种可能性是有人将Tomcat服务器文件包名称改为类似“Tomcat 7.0”这种格式,其中Tomcat和7.0之间存在空格。

当然,避免这个错误的方法也可设置devmode为false或者将devmode设置语句删除:

<constant name="struts.devMode" value="false" />

但不推荐这样做,使用开发者模式,这样可以打印出更详细的错误信息。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值