1、严重: Exception starting filter struts2
java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
原因:一次是和struts.xml和web.xml的配置有关,struts.xml中的
<action name="User*" class="com.lin.parameter.action.UserAction" method="{1}">
<result name="add">
/User{1}_success.jsp
</result>
</action>
class=""后面只跟了包名,而UserAction却没有写
还有一次web.xml
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
这段代码丢了,这样同样tomcat是启动时会报错的,导致最后404错误。
今天晚上再一次出现这个错误,classNotFound,于是很郁闷,又是404,仔细检查了配置文
件和包都没有错,于是我把工程需要的struts包又重新导了一遍,然后再运行,换成另外一种
Unable to load configuration. - bean - jar:file:错误
,我根据后面的地址找到了
myeclipse项目发布时部署的地点,将lib中的jar和刚才添加的jar相对应,该删的给删掉,
当然有部分是基本的jar,和struts无关的不能乱删,于是404问题终于没了。
我用的是myeclipse,tomcat也是用myeclipse自带的,找到workspaces中的项目发布后的文件夹(Z:\codespace\Workspaces\MyEclipse 8.5\.metadata\.me_tcat),打开出错的项目,发现WEB-INF\lib里面只有几个基本的包导了进来,其他关于struts2的包没有进来,我的是把struts2的包放到了jdk里面,然后项目默认的jdk改为自己添加了struts2包的jdk,但是这样做虽然能解决程序不报错,但是一到运行项目时就是以上错误2,所以我又把需要的包给复制到WEB-INF\lib里面,于是再运行时,包导入到发布的项目中对应的lib中,所以问题就解决了。
3.Unable to load configuration
Caused by: Error building results for action redirect in namespace /test - action
这个错误是struts.xml配置文件中package中没有写继承struts-default
4.org.apache.jasper.JasperException: /index.jsp(27,28) equal symbol expected
这个错误是编码不统一,当初让我是否save为UTF-8时我点了是,myeclipse将index.jsp的编码变成UTF-8,这个可以右键index.jsp查看,然后我index.jsp页面上方pageEncoding又写的是GBK,所以报错了,将index.jsp属性中的编码改成GBK即可。