错误如下:
严重: Error configuring application listener of class org.springframework.web.context.ContextLoaderListener
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1352)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1198)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3677)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4187)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1013)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
at org.apache.catalina.core.StandardService.start(StandardService.java:450)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:709)
at org.apache.catalina.startup.Catalina.start(Catalina.java:551)
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:585)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:294)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)
先去tomcat/项目名/WEB-INF/lib 下看 有没有spring-web包,没有的话就是jar文件发布路径的问题。
设置lib文件的发布路径,这里修改到tomcat/项目名/WEB-INF/lib 中,以前是在WEB-INF/classes中。
WEB-INF/lib
分析:
先去/WEB-INF/lib 下看 有没有spring-web包,没有的话就是jar文件发布路径的问题。
当我们启动一个tomcat的服务的时候,jar包和claess文件是是以怎么样的顺序被加载进来的?
<wbr></wbr>
加载顺序:
1.$java_home/lib 目录下的java核心api<wbr></wbr>
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文件
<wbr></wbr>
在同一个文件夹下,jar包是按顺序从上到下依次加载
<wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><span></span>由ClassLoader的<span>双亲委托</span>模式加载机制我们可以知道,假设两个包名和类名完全相同的class文件不再同一个jar包,如果一个class文件已经被加载java虚拟机里了,那么后面的相同的class文件就不会被加载了。</wbr></wbr></wbr></wbr></wbr>
如果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"错误。
- EVERE:Errorconfiguringapplicationlistenerofclassorg.springframework.web.context.ContextLoaderListener
- java.lang.NoClassDefFoundError:org/springframework/context/ConfigurableApplicationContext
- atjava.lang.Class.getDeclaredConstructors0(NativeMethod)
- atjava.lang.Class.privateGetDeclaredConstructors(UnknownSource)
- atjava.lang.Class.getConstructor0(UnknownSource)
- atjava.lang.Class.newInstance0(UnknownSource)
- atjava.lang.Class.newInstance(UnknownSource)
- atorg.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4150)
- atorg.apache.catalina.core.StandardContext.start(StandardContext.java:4705)
- atorg.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
- atorg.apache.catalina.core.StandardHost.start(StandardHost.java:840)
- atorg.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
- atorg.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
- atorg.apache.catalina.core.StandardService.start(StandardService.java:525)
- atorg.apache.catalina.core.StandardServer.start(StandardServer.java:754)
- atorg.apache.catalina.startup.Catalina.start(Catalina.java:595)
- atsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)
- atsun.reflect.NativeMethodAccessorImpl.invoke(UnknownSource)
- atsun.reflect.DelegatingMethodAccessorImpl.invoke(UnknownSource)
- atjava.lang.reflect.Method.invoke(UnknownSource)
- atorg.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
- atorg.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
- Causedby:java.lang.ClassNotFoundException:org.springframework.context.ConfigurableApplicationContext
- atorg.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
- atorg.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
- ...20more
1.java.lang.NoClassDefFoundError: org/objectweb/asm/ClassVisitor
缺少asm-3.3.jar
2.java.lang.NoClassDefFoundError: org/objectweb/asm/commons/EmptyVisitor
缺少asm-commons-3.3.jar
3.java.lang.ClassNotFoundException: org.springframework.web.util.Log4jConfigListener
缺少spring-web-3.2.3.RELEASE.jar
4.java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
缺少spring-web-3.2.3.RELEASE.jar
5.java.lang.ClassNotFoundException: org.springframework.web.context.request.RequestContextListener
缺少spring-web-3.2.3.RELEASE.jar
6.java.lang.ClassNotFoundException: org.springframework.web.util.IntrospectorCleanupListener
缺少spring-web-3.2.3.RELEASE.jar
7.java.lang.NoClassDefFoundError: org/springframework/context/ConfigurableApplicationContext
缺少spring-context-3.2.3.RELEASE.jar
8.Caused by: java.lang.ClassNotFoundException: org.springframework.beans.FatalBeanException
缺少spring-beans-3.2.3.RELEASE.jar
9.Caused by: java.lang.ClassNotFoundException: org.springframework.core.NestedRuntimeException
缺少spring-core-3.2.3.RELEASE.jar
10.java.lang.NoClassDefFoundError: org/apache/log4j/PropertyConfigurator
缺少log4j-1.2.16.jar
11. org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/tx]
缺少spring-tx-3.2.3.RELEASE.jar
12.org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from class path resource [resource/applicationContext.xml]; nested exception is java.lang.NoClassDefFoundError: org/aopalliance/intercept/MethodInterceptor
缺少aopalliance-1.0.jar
13. org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/aop]
缺少spring-aop-3.2.3.RELEASE.jar
14.java.lang.NoClassDefFoundError: org/springframework/expression/PropertyAccessor
缺少spring-expression-3.2.3.RELEASE.jar
15. org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [resource/applicationContext.xml]: BeanPostProcessor before instantiation of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.aop.support.DefaultBeanFactoryPointcutAdvisor#0': Cannot resolve reference to bean 'pointcut' while setting bean property 'pointcut'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'pointcut': Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: org/aspectj/weaver/reflect/ReflectionWorld$ReflectionWorldException
缺少spring-aspects-3.2.3.RELEASE.jar、aspectjweaver.jar、aspectjrt.jar
16. org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [org.springframework.orm.hibernate4.LocalSessionFactoryBean] for bean with name 'sessionFactory' defined in class path resource [resource/applicationContext.xml]; nested exception is java.lang.ClassNotFoundException: org.springframework.orm.hibernate4.LocalSessionFactoryBean
缺少spring-orm-3.2.3.RELEASE.jar
17. org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [resource/applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: org/hibernate/annotations/common/reflection/ReflectionManager
缺少hibernate-commons-annotations-4.0.2.Final.jar
18. org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [resource/applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: org/dom4j/DocumentException
缺少dom4j-1.6.1.jar
19.org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [resource/applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: org/jboss/logging/BasicLogger
缺少jboss-logging-3.1.1.GA.jar
20. org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [resource/applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: javax/transaction/SystemException
缺少jboss-transaction-api_1.1_spec-1.0.1.Final.jar
21. org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [resource/applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: javax/persistence/Entity
缺少hibernate-jpa-2.0-api-1.0.1.Final.jar
22. org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [resource/applicationContext.xml]: Invocation of init method failed; nested exception is org.hibernate.cache.NoCacheRegionFactoryAvailableException: Second-level cache is used in the application, but property hibernate.cache.region.factory_class is not given, please either disable second level cache or set correct region factory class name to property hibernate.cache.region.factory_class (and make sure the second level cache provider, hibernate-infinispan, for example, is available in the classpath).
hibernate.cfg.xml配置中需添加:
<property name="hibernate.cache.use_second_level_cache">true</property>
<property name="hibernate.cache.provider_class">net.sf.ehcache.hibernate.EhCacheProvider</property>
<property name="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</property>
23. org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [resource/applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
缺少slf4j-api-1.6.1.jar
24. org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionManager' defined in class path resource [resource/applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: org/springframework/jdbc/datasource/TransactionAwareDataSourceProxy
缺少spring-jdbc-3.2.3.RELEASE.jar
25. org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [com.cjjt.dao.impl.BaseDaoImpl] for bean with name 'baseDao' defined in class path resource [resource/applicationContext.xml]; nested exception is java.lang.ClassNotFoundException: com.cjjt.dao.impl.BaseDaoImpl
26.Caused by: Cannot locate the chosen ObjectFactory implementation: spring - [unknown location]
缺少struts2-spring-plugin-2.3.15.jar
27.org.springframework.orm.hibernate4.HibernateOptimisticLockingFailureException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1; nested exception is org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1
28.java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
问题及解决办法:缺少commons-logging.jar,需要在lib中添加。
29.NoClassDefFoundError: org/logicalcobwebs/cglib/core/NamingPolicy
问题及解决办法:默认hibernate4下连接池jar包为较老的proxool-0.8.3.jar。需要换成proxool-0.9.1.jar和proxool-cglib.jar
30.org.logicalcobwebs.proxool.ShutdownHook - Problem calling "get cause" on IllegalStateException.
问题及解决办法:默认hibernate4下连接池jar包为较老的proxool-0.8.3.jar。需要换成proxool-0.9.1.jar和proxool-cglib.jar