javaEE错误总结——更换工作空间向同一个tomcat上部署同一个项目时出现有关问题解决

javaEE异常总结——更换工作空间向同一个tomcat上部署同一个项目时出现问题解决

我的一个项目在我的一个工作空间发布,没问题,正常能够跑起来,但是我把项目copy到另一个工作空间,然后发布到tomcat(同一个tomcat,前一个工作空间一个remove deployment,也就是从前一个工作空间里移除了发布信息)上去,想在另一个工作空间去运行这个项目(为了统一管理)。结果add deployment到tomcat上去没有问题,也没有出现异常信息,但是项目也没有发布上去,仔细看tomcat的启动日志发现了一句“Skipped installing application listeners due to previous error(s)  ”,跳过了安装,奇怪,我在前一个工作空间,项目跑的好好的,怎么到这里来就给我跳过安装了呢,项目哪里出错了吗。然后再看tomcat安装目录下logs文件夹下有tomcat的日志,发现了如下的错误信息。

java.lang.ClassNotFoundException: org.apache.catalina.filters.CsrfPreventionFilter

at org.apache.catalina.loader.StandardClassLoader.loadClass(StandardClassLoader.java:854)
at org.apache.catalina.loader.StandardClassLoader.loadClass(StandardClassLoader.java:721)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:211)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:308)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:79)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3698)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4349)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:823)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:595)
at org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:277)
at org.apache.catalina.core.StandardHost.install(StandardHost.java:832)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:701)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:432)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:983)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:349)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1091)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:789)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1083)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:478)
at org.apache.catalina.core.StandardService.start(StandardService.java:480)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:2313)
at org.apache.catalina.startup.Catalina.start(Catalina.java:556)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:287)

at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:425)

ClassNotFound,首先想到的是,我更换工作空间了,是不是jar的路径出错了,但是仔细核对后没问题啊。然后经过了一番折腾,后来在tomcat的安装目录下的work文件夹下发现了很多和应用相关的东西,而且是好多我以前remove deployment的工程,我remove了怎么在work下还有,哎,是不是这个问题呢,然后我把work下对应的工程(应该是tomcat给生成的)删除。再试,卧槽,可以了。描述的很简单,其实折腾了我得两个多小时,哎,贴出来给大家分享一下吧。