求问,为啥把tomcat6.0换成tomcat7.0、tomcat8.0就报错了呢?

开发工具是用的是MyEclipse14,jdk1.6和1.8,使用tomcat6没有任何问题,但是换了tomcat7和tomcat8都出错
Tomcat7:在谷歌浏览器输入http://localhost:8080/test/报错:The requested resource is not available.但是此时Console没报错。
tomcat8:Console报错:java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.FilterDispatcher 在谷歌浏览器输入http://localhost:8080/test/出错: The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.
求问该如何解决呢?

13个回答

1.看看你tomcat7和8的weapps下面是不是有你要deploy的项目,再看看里面文件是否完整,用IDE部署项目有时候同步不完整。

sinat_35936065
sinat_35936065 这和环境变量和JDK版本都有关系,建议你重新搭建一次。
2 年多之前 回复
KyKiske22
KyKiske22 有,webapps下面和6一样是完整的,还是不行
2 年多之前 回复

编译问题,,你换成tomcat8之后,要重新编译,,,不然会少一些class,就会提示java.lang.ClassNotFoundException:

KyKiske22
KyKiske22 回复w_小小泽: 换回了struts2-core-2.3.20了,配置文件用的是 org.apache.struts2.dispatcher.FilterDispatcher,BuildPath下的Web APP Libraries里面有strus2的几个包,不知为啥用tomcat8.0启动就出:Exception starting filter [struts2] java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.FilterDispatcher这个错误
2 年多之前 回复
u011877155
w_小小泽 回复KyKiske22: 我还以为你直接配置的FilterDispatcher这个报错的呢,,是不是struts的依赖的jar没有或者是没build path
2 年多之前 回复
KyKiske22
KyKiske22 回复w_小小泽: 能。
2 年多之前 回复
KyKiske22
KyKiske22 回复w_小小泽: 没有,配置文件我写的是org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter,这个在2.5里面有的,换tomcat8.0不行,但是6.0就可以
2 年多之前 回复
u011877155
w_小小泽 回复KyKiske22: 最好在xml里面ctrl点下,看看能不能定位过去
2 年多之前 回复
u011877155
w_小小泽 回复KyKiske22: org.apache.struts2.dispatcher.FilterDispatcher看看在你的jar里面又没这个,注意struts2,有些版本是Struts2,有时候同样的名称在不同tomcat下也会一个报错一个不报
2 年多之前 回复
KyKiske22
KyKiske22 回复w_小小泽: struts2-core-2.5.14.1
2 年多之前 回复
u011877155
w_小小泽 回复KyKiske22: struts是哪个版本的呀
2 年多之前 回复
KyKiske22
KyKiske22 回复w_小小泽: 测试tomcat8用的jdk8_162,肯定选择对应的jdk才问的啊- -,但还是出错,CSDN我都逛遍了也没解决
2 年多之前 回复
u011877155
w_小小泽 回复KyKiske22: jdk是6还是8,最好在tomcat8的jdk里面选择8
2 年多之前 回复
KyKiske22
KyKiske22 我照CSDN所有教程重新配置编译了,没用,还是出同样的错误
2 年多之前 回复

首先确认JDK和Tomcat的版本是否对应
其次换过JDK后重新编译
最后把tomcat work、webapps里的内容清除掉,重新发布,再启动试试。

tomcate7.0.2还是几之后,加入了特殊字符拦截处理机制,比如有些特殊字符tomcate高版本自动过滤掉了,前端页面F12会看到,包request请求的 错误,
建议继续使用低版本,或者将你请求中的特殊字符进行加密处理。

1.查看项目的Properties中Java Compiler 中对应的变异环境的版本是否和Window下Preferences->java->Installed JREs 是否是一个版本。
2.直接cmd,输入java -version 查看目前环境jdk的版本是否正确,如果不正确,去环境变量,将jdk引入的顺序改成第一个。

Tomcat6到Tomcat7内部发生了大的改动,如数据库驱动加载,线程启动,不会自动建立ROOT.xml目录,tomcat7配置管理员信息(tomcat-users.xml)也发生了改变,,详细解决方案请访问:http://bbs.51cto.com/thread-1115141-1.html

先访问http://localhost:8080/看tomcat是否能访问,如果能访问则到tomcat部署的目录看工程是否正确部署。如果不能访问,启动时又没报错的话,则看下tomcat的端口是否设置为8080

KyKiske22
KyKiske22 http://localhost8080/这个没有任何问题,启动没报错。Connector port的值是8080
2 年多之前 回复

.class文件没找到,清空后重新 编译一下

1.在计算机左下角,输入java -version 查看目前环境jdk的版本是否正确,如果不正确,去环境变量,将jdk引入的顺序改成第一个。
2.有可能是tomacat目录丢失bin目录

共13条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问