整合三大框架,启动tomcat 就报错了,在网上找了好久,也没能解决,希望有哪位大神帮忙看看,小弟不胜感激

时间:2022-03-04 16:48:47
这个是报错提示:
java.lang.ClassNotFoundException: org.springframework.web.content.ContextLoaderListener
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:527)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:509)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:137)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4823)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5381)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1113)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1671)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)

这个是applicationContext.xml 文件:
<?xml version="1.0" encoding="GBK"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context-3.2.xsd
        http://www.springframework.org/schema/tx
        http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
        http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.2.xsd">
<!--配置数据源-->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close" lazy-init="true">
<property name="driverClassName">
<value>com.microsoft.sqlserver.jdbc.SQLServerDriver</value>
</property>
<property name="url">
<value>jdbc:sqlserver://127.0.0.1:1444;DatabaseName=school</value>
</property>
<property name="username">
<value>sa</value>
</property>
<property name="password">
<value>biao12</value>
</property>

<!-- 连接池启动时的初始值 -->
<property name="initialSize">
<value>3</value>
</property>
<!-- 连接池的最大值 -->
<property name="maxActive">
<value>500</value>
</property>
<!-- 最大空闲值.当经过一个高峰时间后,连接池可以慢慢将已经用不到的连接慢慢释放一部分,一直减少到maxIdle为止 -->
<property name="maxIdle">
<value>2</value>
</property>
<!-- 最小空闲值.当空闲的连接数少于阀值时,连接池就会预申请去一些连接,以免洪峰来时来不及申请 -->
<property name="minIdle">
<value>1</value>
</property>
</bean>

<!--配置会话工厂-->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">

<!-- 引用dataSource数据源 -->
<property name="dataSource">
<ref bean="dataSource" />
</property>
<!-- 配置数据连接的properties文件,包括选择数据库、已经是否打印sql语句,当object对象属性改变时是否更新数据库列 等 -->
<property name="hibernateProperties">
<props>
<!-- key的名字前面都要加hibernate. -->
<prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
</props>
</property>
<property name = "mappingResources">
<list>
<value>domain/Student.hbm.xml</value>
<value>domain/Grade.hbm.xml</value>
<value>domain/Course.hbm.xml</value>
</list>
</property>
</bean> 

<!--配置事务管理器-->
    <bean id="txManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<tx:annotation-driven transaction-manager="txManager" />

<bean id = "studentDao" class = "dao.StudentDaoImp">
<property name = "sessionFactory" ref = "sessionFactory"/>
</bean>

<bean id = "studentService" class = "service.StudentServiceImp">
<property name = "studentDao" ref = "studentDao"/>
</bean>

<bean id = "studentAction" class = "webtier.StudentAction">
<property name = "studentService" ref = "studentService"/>
</bean>
     
</beans>

这个是其中一个持久化类的配置文件:
<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>

<class name = "domain.Student" table = "student" lazy = "false">
<id name = "id" type = "java.lang.Integer">
<column name = "id"/>
<generator class = "native"/>
</id>
<property name = "sname" type = "java.lang.String">
<column name = "sname" not-null = "true"/>
</property>
<property name = "departname" type = "java.lang.String">
<column name = "departname"/>
</property>
<property name = "specialty" type = "java.lang.String">
<column name = "specialty"/>
</property>
<!--类 Student 和   类 Grade 一对多关联-->
<set name = "grade" table = "grade" cascade = "save-update" lazy = "false" inverse = "true">
<key column = "student_id"/>
<one-to-many class = "domain.Grade"/>
</set>
</class>
</hibernate-mapping>


17 个解决方案

#1


查看web.xml看看是否遗漏配置信息,看看过滤器和监听器

#2


该回复于2014-03-24 22:53:21被版主删除

#3


把异常多粘贴点吧。目前只知道找不到某个类,范围太大,排查比较费劲。

#4


java.lang.ClassNotFoundException: org.springframework.web.content.ContextLoaderListener
没有spring-context*.jar包。不过全楼主别用spring了,数据源死锁根本没法解决

#5


回复@yys79
不是吧,可是我要整合三大框架的哟,不弄spring 不行的哟

#6


回复@lixiaohua886
可是异常也就那么多了,没有别的异常提示了

#7


spring的jar包放到WEB-INF/lib下了吗?

#8


回复@HeLiang7
放了,已经都

#9


引用 5 楼 u012819950 的回复:
回复@yys79
不是吧,可是我要整合三大框架的哟,不弄spring 不行的哟

不行?那你就等着出问题吧,起码死锁问题现在是没法解决的。除非你不用

#10


你好吃纯为了玩弄也就弄了。可是搞框架一般都是为了用吧,为了解决问题。可前面明显有个坑,你还往里跳,那就没办法了

#11


缺少jar吧,报类没找到.你加我吧619066780.我晚上帮你解决
验证信息填csdn

#12


回复@u011431550
好的,谢谢你,我现在就加你,你晚上什么时候有空???

#13


你这看spring的配置文件干嘛呢?明显是web.xml里面配置错了 或是没有配置spring的监听

#14


有的,web.xml 有配置监听的

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
  <display-name></display-name>
  
  <listener>
    <listener-class>
      org.springframework.web.content.ContextLoaderListener
    </listener-class>    
  </listener>
  <context-param> 
    <param-name>contextConfigLocation</param-name> 
        <param-value>classpath:applicationContext.xml</param-value> 
  </context-param> 
  
    
  <!-- Struts2 核心拦截器 -->
  <filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
    </filter-class>
  </filter>
  <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
 
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

#15


上面那个就是web.xml 配置文件

#16


貌似我以前也遇到这个问题,我的问题最主要是因为在加入jar包时,自己弄了文件夹了,将spring  struts hibernate这些包都放在各自的文件夹下,再放进lib下。我在myeclipse10中用的时候是没有事情的   但是那时候放在myeclipse2013下时,就出现问题了。貌似也是报这个监听器的错误,后来的解决办法是:将spring struts等jar包直接放在lib目录下,问题就解决了!   分析过可能的原因是:1、jar包没有真正地部署到tomcat下,可能原因是一些版本的myeclipse不能识别文件夹  2、可能原因是由于jar包的冲突问题,我自己那时候三个框架时的jar包  各自的版本有高低,   全部从文件夹中释放出来后,一部分低版本的jar包被覆盖,也有可能是这个原因。  反正当时我就分析出这两个原因,并且这样解决了     希望对楼主有用~~

#17


这个错误我解决了,各位,感谢大家,是我的持久化类配置文件出错了,因为持久化类配置文件是我自己在myeclipse 上配置的,出错了总是找不出来,这里,给个小小的提示,以后,做项目时,最好先在数据库里建好表,然后通过myeclipse 强大的反向工具,自动生成持久化类和对于持久化类的配置文件,这样,就不会有错的了,希望对整合三大框架的友们有用,呵呵。

#1


查看web.xml看看是否遗漏配置信息,看看过滤器和监听器

#2


该回复于2014-03-24 22:53:21被版主删除

#3


把异常多粘贴点吧。目前只知道找不到某个类,范围太大,排查比较费劲。

#4


java.lang.ClassNotFoundException: org.springframework.web.content.ContextLoaderListener
没有spring-context*.jar包。不过全楼主别用spring了,数据源死锁根本没法解决

#5


回复@yys79
不是吧,可是我要整合三大框架的哟,不弄spring 不行的哟

#6


回复@lixiaohua886
可是异常也就那么多了,没有别的异常提示了

#7


spring的jar包放到WEB-INF/lib下了吗?

#8


回复@HeLiang7
放了,已经都

#9


引用 5 楼 u012819950 的回复:
回复@yys79
不是吧,可是我要整合三大框架的哟,不弄spring 不行的哟

不行?那你就等着出问题吧,起码死锁问题现在是没法解决的。除非你不用

#10


你好吃纯为了玩弄也就弄了。可是搞框架一般都是为了用吧,为了解决问题。可前面明显有个坑,你还往里跳,那就没办法了

#11


缺少jar吧,报类没找到.你加我吧619066780.我晚上帮你解决
验证信息填csdn

#12


回复@u011431550
好的,谢谢你,我现在就加你,你晚上什么时候有空???

#13


你这看spring的配置文件干嘛呢?明显是web.xml里面配置错了 或是没有配置spring的监听

#14


有的,web.xml 有配置监听的

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
  <display-name></display-name>
  
  <listener>
    <listener-class>
      org.springframework.web.content.ContextLoaderListener
    </listener-class>    
  </listener>
  <context-param> 
    <param-name>contextConfigLocation</param-name> 
        <param-value>classpath:applicationContext.xml</param-value> 
  </context-param> 
  
    
  <!-- Struts2 核心拦截器 -->
  <filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
    </filter-class>
  </filter>
  <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
 
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

#15


上面那个就是web.xml 配置文件

#16


貌似我以前也遇到这个问题,我的问题最主要是因为在加入jar包时,自己弄了文件夹了,将spring  struts hibernate这些包都放在各自的文件夹下,再放进lib下。我在myeclipse10中用的时候是没有事情的   但是那时候放在myeclipse2013下时,就出现问题了。貌似也是报这个监听器的错误,后来的解决办法是:将spring struts等jar包直接放在lib目录下,问题就解决了!   分析过可能的原因是:1、jar包没有真正地部署到tomcat下,可能原因是一些版本的myeclipse不能识别文件夹  2、可能原因是由于jar包的冲突问题,我自己那时候三个框架时的jar包  各自的版本有高低,   全部从文件夹中释放出来后,一部分低版本的jar包被覆盖,也有可能是这个原因。  反正当时我就分析出这两个原因,并且这样解决了     希望对楼主有用~~

#17


这个错误我解决了,各位,感谢大家,是我的持久化类配置文件出错了,因为持久化类配置文件是我自己在myeclipse 上配置的,出错了总是找不出来,这里,给个小小的提示,以后,做项目时,最好先在数据库里建好表,然后通过myeclipse 强大的反向工具,自动生成持久化类和对于持久化类的配置文件,这样,就不会有错的了,希望对整合三大框架的友们有用,呵呵。