java - struts2找不到类文件
问题描述
刚学到struts2这块,按照书上的代码观察struts2的action的运行情况,然后也是按照书上的步骤,先是导入包,然后配置web.xml和在src文件夹中配置一个struts.xml,最后编写一个index.jsp和first.jsp,然而在运行时候出了错误,报错情况为:严重: Exception starting filter struts2java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1892)at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1735)at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:504)at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:486)at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:113)at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:258)at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:105)at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4958)at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5652)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1571)at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1561)at java.util.concurrent.FutureTask.run(Unknown Source)at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)at java.lang.Thread.run(Unknown Source)
尝试解决过程:网上查找过问题,有的答案说是有可能是包重复了?然后我根据这种做法重新导入了jar包,可是依然报错,然后还有的解决方案是说看下struts.xml和web.xml,看看是否有拼写错误或其它小问题,可是我观察了好久,没有看到出错的地方。以下是我的页面出错情况、项目文件,以及配置情况:
希望路过的大佬能指教下,小弟感激不尽...
问题解答
回答1:问题已经解决。1.找不到指定页面java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter解决办法是:<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>中的class路径更改为:org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter
2.更改后出现了其他问题:tomcat不能正常启动,报了好多错误。解决方法:再添加一个jar包:log4j-api-2.7.jar
至此,tomcat正常启动,struts2也能准确拦截对象,页面正常显示。
回答2:看看工程的build path有没有你加的这些包。
回答3:你没有将包导入类路径下
相关文章:
1. python - 斗鱼关注人数爬下来是张加载图片,如何爬取关注人数2. 正则表达式 - python pandas的sep参数问题3. jpa mysql 如何id自增初始值?4. python - tweepy 库 连接Twitter API 报错5. python - 为什么在main()函数里result 会变成那样?6. 怎么用php+mysql做动态数据表格 , 急!!!7. ios - 类似微博首页,一张图的时候是如何确定图大小的?8. 按照本节给的代码“胆小如鼠”并不能变成红色9. 修改my.cnf后mysql无法运行???10. mysql - 为什么使用Group By对SQL的索引性能会有很大的影响
