修改 struts.xml 里面的 struts.devMode 常量值为 true,
目的在于每次对 action 进行修改时,不用重启 tomcat 服务器便可自动进行 loading。但修改后重启 tomcat 时出现空指针错误:
经过百度查找,共有以下几种解决方案,收集如下:
1. 这个属于struts2.1的bug,tomcat目录不能有空格。
原文来自:http://blog.youkuaiyun.com/lgm277531070/article/details/5337252
2. devMode模式是开发模式,开启它则默认开启了i18n.reload、 configuration.xml.reload。这个错误是由于configuration.xml.reload设置为true倒置的,但是网上的资料没有说明原因及解决办法,倒是一个国外的apache相关BBS上有人说这是216版本的BUG,并且附上了一个.patch修正文件,说217版本会修正。。。可我不会用也不知道是不是这个原因,这个问题就一直搁置在这里了。过了几个月,也就是最近网上查了下发现在apache的一个邮件列表中有关于这个的解释,原因很简单,tomcat的安装路径包含空格。。。无语啊。。。一试果然如此。
我的成功的办法:据说这是struts2.1.6的bug,换新版本2.1.8就ok,当然还要相应的xwork版本,好像是xwork2.1.6,我将原来的2个旧jar包换成新的就ok了。
注意:2个jar包换了之后重启tomcat可能会报错, Unable to load bean: type: class:com.opensymphony.xwork2.ObjectFactory - bean - jar,这个错误是开始那个引起的,把tomcat中相应项目删除了,重新部署就没问题了
下面是4个开发模式常用配置的简介---(来自http://hi.baidu.com/12261016/blog/item/1d7f6ccaded7248ec91768ec.html)
<!-- 开启使用开发模式,详细错误提示 -->
<!-- <constant name="struts.devMode" value="true"/>-->
<!-- 指定每次请求到达,重新加载资源文件 -->
<!-- <constant name="struts.i18n.reload" value="true"/>-->
<!-- 指定每次配置文件更改后,自动重新加载 -->
<!-- <constant name="struts.configuration.xml.reload" value="true"/>-->
<!-- 指定XSLT Result使用样式表缓存 -->
<!-- <constant name="struts.xslt.nocache" value="true"/>-->
原文来自:http://blog.youkuaiyun.com/kang89/article/details/5928804
KEY:关键是我试了一下把tomcat安装目录的空格去掉,但问题还是没有得到解决!最近会继续关注这个问题。。。