`
xj4150
  • 浏览: 96926 次
  • 性别: Icon_minigender_1
  • 来自: 山东
社区版块
存档分类
最新评论

tomcat启动时出现的 严重: Error listenerStart

阅读更多

      最近看《WebWork.Spring.Hibernate整合开发网络书城》视频教程,自己按照教程上说的做练习,在启动tomcat时总是出一个错误:<o:p></o:p>

      2007-5-31 14:27:13 org.apache.catalina.core.StandardContext start
     
严重: Error listenerStart
      2007-5-31 14:27:13 org.apache.catalina.core.StandardContext start
     
严重: Context [/testWSH] startup failed due to previous errors
   
     
教程的作者在录制教程时也遇到了此问题,但是他删了一个jar包后就没事了,可是我的一直无法正常启动,从昨天到现在一天的时间都在研究这个问题,也百 度到了很多有关此问题的信息,但是都没有很明确的解决方案。现在此问题已经解决,而且基本肯定问题所在,所以将解决方案写出来以供参考。

     
有一种解决方案是把web.xml文件中的<o:p></o:p>

<listener>       <listener-class>org.springframework.web.context.ContextLoaderListenerlistener-class>
listener>
改为
   <
servlet>
       
<servlet-name>SpringContextServletservlet-name>
       
<servlet-class>
            org.springframework.web.context.ContextLoaderServlet
       
servlet-class>
       
<load-on-startup>1load-on-startup>
   
servlet><o:p></o:p>

      但这种方法可能会出现其他问题(网上又说会导致其他文件无法打开)。
    <o:p></o:p>

    我的最终解决方案如下:
     
我用的是tomcat5.5,配置了日志之后打印出下列信息:
       ERROR main org.springframework.web.context.ContextLoader - Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: org/apache/commons/pool/impl/GenericObjectPool
Caused by:
java.lang.NoClassDefFoundError: org/apache/commons/pool/impl/GenericObjectPool
    at java.lang.Class.getDeclaredConstructors0(Native Method)
    at java.lang.Class.privateGetDeclaredConstructors(Class.java:2328)
    at java.lang.Class.getConstructor0(Class.java:2640)
    at java.lang.Class.getDeclaredConstructor(Class.java:1953)
    ……


     
从日志信息看问题已经很明显了,是 applicationContext.xml dataSource  
问题。

<bean class="org.apache.commons.dbcp.BasicDataSource" id="dataSource"></bean>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<!---->
<bean class="org.apache.commons.dbcp.BasicDataSource" id="dataSource"></bean>改为
<bean class="org.springframework.jdbc.datasource.DriverManagerDataSource" id="dataSource"></bean>
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
之后问题得到解决。 <o:p></o:p>

       出现"Error listenerStart"一般是applicationContext.xml中的bean加载有问题。在用eclipsewebwork + spring + hibernate 的项目时一般都是用Myeclipse自动生成那些配置文件,而有些相关的jar或者文件并没有加载在至项目中,以至引出奇怪的问题,又因为是自动生成的东西所以往往会忽略一些文件,而问题确恰恰是这些生成的文件所致,所以自动化的东西也未必一定是正确的,呵呵……<o:p></o:p>

    org.springframework.jdbc.datasource.DriverManagerDataSource 不可以使用连接池。org.apache.commons.dbcp.BasicDataSource作为注入的DataSource源,为了使用 DBCP的功能,必须要将commons-dbcp.jar加入CLASSPATH中,另外还需要commons-pool.jarcommons- collections.jar,这些都可以在Springlib目录下找到。

org.springframework.jdbc.datasource.DriverManagerDataSource
并没有提供连接池的功能,只能作作简单的单机连接测试。
使用org.apache.commons.dbcp.BasicDataSource时缺少commons-pool.jar所以会出现如题的问题。 <o:p></o:p>

再次修正:<o:p></o:p>

    昨天又遇到此问题,解决的办法是删除无用的jar<o:p></o:p>

    工程是 springhibernatetomcat<st1:chsdate year="1899" month="12" day="30" islunardate="False" isrocdate="False" w:st="on">5.5.25</st1:chsdate>jar都是用eclipse自动加载的,很多jar明显的用不到,例如:ibatistoplink等。将无用的jar删除后问题解决。<o:p></o:p>

<o:p> </o:p>

分享到:
评论
14 楼 lmjia573839335 2011-11-08  
                   
13 楼 lmjia573839335 2011-11-08  
                    :-
12 楼 shudikoo 2008-05-21  
我也遇到了这个问题,研究了3天,最后知道是少了几个spring的包。去官网下载spring的最新包。就ok了。具体的文件配置在http://user.qzone.qq.com/3470537/blog/1211351181
11 楼 摆渡人 2008-04-07  
怪事,偶也是报这个错误,发现没加入spring.jar包,加了之后.tomcat6启动就OK了
10 楼 richardlovejob 2007-10-26  
谢谢你的提示帮助!
9 楼 danielchen19 2007-09-01  
我也曾经试过这样可以过一次,但现在又出现这种情况,原因是在web.xml 删了<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>就可以了, 正常情况是可以的,不知是什么原因,请高手解答一下。
8 楼 xj4150 2007-08-23  
danielchen19 写道
我也是将它变成这样<!--<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
-->
<servlet>
        <servlet-name>SpringContextServlet</servlet-name>
        <servlet-class>    </servlet-class>
          <load-on-startup>1</load-on-startup>
    </servlet>

但是还是出现严重: Error listenerStart
2007-8-12 8:37:30 org.apache.catalina.core.StandardContext start
严重: Context [/ConnectNote] startup failed due to previous errors, 请问是什么原因??


ybbtgvusr 写道
我也遇到了楼主说的情况,按你说的解决方法试过了。但没有用呀,还是出现Error listenerStart错误!!


先看看日志吧,看看报什么异常
7 楼 danielchen19 2007-08-12  
我也是将它变成这样<!--<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
-->
<servlet>
        <servlet-name>SpringContextServlet</servlet-name>
        <servlet-class>    </servlet-class>
          <load-on-startup>1</load-on-startup>
    </servlet>

但是还是出现严重: Error listenerStart
2007-8-12 8:37:30 org.apache.catalina.core.StandardContext start
严重: Context [/ConnectNote] startup failed due to previous errors, 请问是什么原因??
6 楼 ybbtgvusr 2007-07-05  
我也遇到了楼主说的情况,按你说的解决方法试过了。但没有用呀,还是出现Error listenerStart错误!!
5 楼 hcconquer 2007-06-15  
楼上说的很对,commons-dbcp.jar、commons-pool.jar和commons- collections.jar都加到lib就好了
我现在报sessionFactory不能创建,请问要加那几个包啊
4 楼 aimama_1314 2007-06-04  
在这里搜到你的帖`~  XJ~~

我又遇见这样的问题了``

估计是刚才applicationContext.XML 加bean的时候加错了``555

泪``继续改错``
3 楼 xj4150 2007-06-01  
使用org.apache.commons.dbcp.BasicDataSource时缺少commons-pool.jar所以会出现如题的问题。
2 楼 xj4150 2007-05-31  
org.springframework.jdbc.datasource.DriverManagerDataSource并没有提供连接池的功能,只能作作简单的单机连接测试。
1 楼 xj4150 2007-05-31  
<bean id="dataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSource">不可以使用连接池。org.apache.commons.dbcp.BasicDataSource作为注入的DataSource源,为了使用DBCP的功能,必须要将commons-dbcp.jar加入CLASSPATH中,另外还需要commons-pool.jar和commons- collections.jar,这些都可以在Spring的lib目录下找到。

相关推荐

Global site tag (gtag.js) - Google Analytics