当感觉自己基本没写错,无从下手的时候,先查看下导入的包是否完整,一般需要以下几个jar包:
commons-fileupload-x.y.z.jar
commons-io-x.y.z.jar
commons-logging-x.y.jar
freemarker-x.y.z.jar
ognl-x.y.z.jar
struts2-core-x.y.z.jar
xwork-x.y.z.jar
确认完发现该有的都有,那接下来需要做的是检查路径是否写对了,还有struts.xml配置文件应当WEB-INF/classes文件夹下,以及放在还有action里的class要完整的名字,就是连同包名也应该包括进来像这样:
packageName.className
不完整的报名也会报出这个错误,不过这个错误在console可以看到这个错误提示:
Dispatcher initialization failed
如果以上都搞定了,还是报错,不要灰心,还有一个解决方案,如果console显示的是以下错误信息:
严重: Exception starting filter struts2java.lang.NullPointerException
看看代码中是否有段:
<constant name="struts.devMode" value="true"/>
这里devMode模式是开发模式,开启它则默认开启了i18n.reload,configuration.xml.reload。这个错误是由于configuration.xml.reload设置为true造成的。换句话说就是你的tomcat安装目录中有空格导致了这个错误,比如常见的:Program Files,这中间就有个空格,这样是不行的,改过来就好。另外,不能直接修改文件名来改,这样你的tomcat会崩,还是重新安装一个吧。