Tomcat启动报监听找不到的三个异常

          这几天,启动Tomcat服务器频繁遇到一个问题,就是Tomcat启动的时候报出3个异常,都是报跟Spring-web.jar包下相关的Lister(监听)找不到,起初以为是我的工程中缺少Spring-web.jar这个包,我右键工程看了下Build Path里面所加入的架包,并没有缺少Spring-web.jar的情况,网上查了下,大部分人都是以为缺少架包,他们的解决方式是重新导入架包到Lib目录下,因为我的项目不是用Maven构建的,所以排除这种可能,第一次重新配置的Tomcat,在解决一些新的异常后,Tomcat启动正常了。然而今天又遇到这种情况了,我就觉得是Tomcat启动时,Spring-web.jar架包没有通过Tomcat的路径编译进去

                                 

                     


         

      分析:

            先去/WEB-INF/lib 下看 有没有spring-web包,没有的话就是jar文件发布路径的问题。

            当我们启动一个tomcat的服务的时候,jar包和claess文件是是以怎么样的顺序被加载进来的?

加载顺序:

1. $java_home/lib 目录下的java核心api 

2. $java_home/lib/ext 目录下的java扩展jar包

3. java -classpath/-Djava.class.path所指的目录下的类与jar包

4. $CATALINA_HOME/common目录下按照文件夹的顺序从上往下依次加载

5. $CATALINA_HOME/server目录下按照文件夹的顺序从上往下依次加载

6. $CATALINA_BASE/shared目录下按照文件夹的顺序从上往下依次加载

7. 我们的项目路径/WEB-INF/classes下的class文件

8. 我们的项目路径/WEB-INF/lib下的jar文件

 

在同一个文件夹下,jar包是按顺序从上到下依次加载

 

      由ClassLoader的双亲委托模式加载机制我们可以知道,假设两个包名和类名完全相同的class文件不再同一个jar包,如果一个class文件已经被加载java虚拟机里了,那么后面的相同的class文件就不会被加载了。


   解决方法:

      如果Eclipse的BuildPath里面不缺jar包并且在 ProjectProperties>>DeploymentAssembly里面定义的lib都包含齐全,那么有可能jar包没有     被deploy到tomcat里面路径可能是:\WorkSpace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\ProjectNameXXX\WEB-    INF\lib。手动将jar包扔进去可解决tomcat报"NoClassDefFoundError"之类的错误。 

       检查:

                


                

  以上检查都没有发现缺少Spring-web.jar架包

               


            下面就是重启Tomcat后的正常结果

                         好了,以上就是遇到这类异常的解决方案。



















发布了306 篇原创文章 · 获赞 193 · 访问量 71万+
展开阅读全文

tomcat启动错:不到EopSessionListener,请问有没有人遇到过,如何解

04-12

信息: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time. 四月 12, 2019 3:49:22 下午 org.apache.catalina.core.ApplicationContext log 信息: No Spring WebApplicationInitializer types detected on classpath 四月 12, 2019 3:49:22 下午 org.apache.catalina.core.StandardContext listenerStart 严重: Error configuring application listener of class com.enation.eop.sdk.listener.EopSessionListener java.lang.ClassNotFoundException: com.enation.eop.sdk.listener.EopSessionListener 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:495) at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:477) at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:113) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5034) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5634) 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) 四月 12, 2019 3:49:22 下午 org.apache.catalina.core.StandardContext listenerStart 严重: Error configuring application listener of class com.enation.eop.sdk.listener.EopContextLoaderListener java.lang.ClassNotFoundException: com.enation.eop.sdk.listener.EopContextLoaderListener 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:495) at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:477) at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:113) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5034) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5634) 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) 四月 12, 2019 3:49:22 下午 org.apache.catalina.core.StandardContext listenerStart 严重: Skipped installing application listeners due to previous error(s) 四月 12, 2019 3:49:22 下午 org.apache.catalina.core.StandardContext startInternal 严重: One or more listeners failed to start. Full details will be found in the appropriate container log file 四月 12, 2019 3:49:22 下午 org.apache.catalina.core.StandardContext startInternal 严重: Context [/b2b2c] startup failed due to previous errors 四月 12, 2019 3:49:22 下午 org.apache.coyote.AbstractProtocol start 问答

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览