部署struts2报错的解决办法(更正)
web.xml提示这个:
Referenced file contains errors (http://java.sun.com/xml/ns/j2ee/web-app_2_5
然后控制台提示这个:
严重: Exception starting filter struts2
上网搜了一下解决办法。
我的工程其实是三个问题:
1.struts2的core jar的版本不对。我把struts2-core-2.1.0.几的jar换成struts2-core-2.2.1.1.jar,xwork-core-2.1.0.几的jar换成xwork-core-2.2.1.1.jar;这里对应web.xml里面开头app那一句
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
貌似version="2.4" 对应旧版本,2.5对应新版的jar,同理_2_5那个也要。
2. 就是上面黑体那句,原本是没有的,要加上去。
3.这份struts2的几个jar,除了加载在工程之外,部署服务器的tomcat里面的lib也要拷一份进去。(后面这个问题我查了很久才解决)
另外,网上有些说吧web.xml里面那几句的xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
的java换成大写的JAVA可以,这个。。。
更正:上面第二点的那个问题:2.就是上面黑体那句,原本是没有的,要加上去。
其实不是问题。发现没有这句也好使。
今天在马士兵的视频找到答案,这个错误的原因主要是web.xml的版本问题。struts2.1和2.0
web.xml里面有这一句
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
这一句中2.1和2.0对应的struts的包不一样的。
浙公网安备 33010602011771号