2010-1-29 9:10:57 org.apache.catalina.core.StandardContext start
严重: Error listenerStart
2010-1-29 9:10:57 org.apache.catalina.core.StandardContext start
严重: Context [/PortalHU] startup failed due to previous errors
2010-1-29 9:10:57 org.apache.catalina.core.ApplicationContext log
信息: Closing Spring root WebApplicationContext
2010-1-29 9:10:57 org.apache.coyote.http11.Http11Protocol start
信息: Starting Coyote HTTP/1.1 on http-8082
2010-1-29 9:10:57 org.apache.jk.common.ChannelSocket init
信息: JK: ajp13 listening on /0.0.0.0:8010
2010-1-29 9:10:57 org.apache.jk.server.JkMain start
信息: Jk running ID=0 time=0/15 config=null
2010-1-29 9:10:57 org.apache.catalina.startup.Catalina start
信息: Server startup in 2119 ms
严重: Error listenerStart
2010-1-29 9:10:57 org.apache.catalina.core.StandardContext start
严重: Context [/PortalHU] startup failed due to previous errors
2010-1-29 9:10:57 org.apache.catalina.core.ApplicationContext log
信息: Closing Spring root WebApplicationContext
2010-1-29 9:10:57 org.apache.coyote.http11.Http11Protocol start
信息: Starting Coyote HTTP/1.1 on http-8082
2010-1-29 9:10:57 org.apache.jk.common.ChannelSocket init
信息: JK: ajp13 listening on /0.0.0.0:8010
2010-1-29 9:10:57 org.apache.jk.server.JkMain start
信息: Jk running ID=0 time=0/15 config=null
2010-1-29 9:10:57 org.apache.catalina.startup.Catalina start
信息: Server startup in 2119 ms
有一种解决方案是把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加载有问题。在用eclipse做webwork + 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.jar和commons- collections.jar,这些都可以在Spring的lib目录下找到。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> 工程是 spring+hibernate+tomcat<st1:chsdate year="1899" month="12" day="30" islunardate="False" isrocdate="False" w:st="on">5.5.25</st1:chsdate>,jar都是用eclipse自动加载的,很多jar明显的用不到,例如:ibatis,toplink等。将无用的jar删除后问题解决。<o:p></o:p><o:p> </o:p>
监听器启动错误Context [/PortalHU] startup failed due to previous errors
上下文"/PortalHU"由于上一个错误启动失败请问你是怎么部署的?检查服务器配置文件有没有错误
可能是因为以前机器里用的是JDK6.0。后来为删除了JDK6.0,装了JDK5.0。但是工程 --》properties-->java Compiler 里的设置Compiler compliance level的设置还是6.0,改成5.0就好了
2010-1-29 9:10:55 org.apache.tomcat.util.digester.SetPropertiesRule begin
警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.j2ee.server:PortalHU' did not find a matching property.
2010-1-29 9:10:55 org.apache.catalina.core.AprLifecycleListener init
信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jdk1.6.0_10\bin;.;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\Oracle\ora90\bin;C:\Program Files\Oracle\jre\1.3.1\bin;C:\Program Files\Oracle\jre\1.1.8\bin;C:\Program Files\Java\jdk1.6.0_10\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\ATI Technologies\ATI.ACE\Core-Static
2010-1-29 9:10:55 org.apache.coyote.http11.Http11Protocol init
信息: Initializing Coyote HTTP/1.1 on http-8082
2010-1-29 9:10:55 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 356 ms
2010-1-29 9:10:55 org.apache.catalina.core.StandardService start
信息: Starting service Catalina
2010-1-29 9:10:55 org.apache.catalina.core.StandardEngine start
信息: Starting Servlet Engine: Apache Tomcat/6.0.20
2010-1-29 9:10:55 org.apache.catalina.core.StandardContext addApplicationListener
信息: The listener "org.apache.myfaces.webapp.StartupServletContextListener" is already configured for this context. The duplicate definition has been ignored.
2010-1-29 9:10:56 org.apache.catalina.core.ApplicationContext log
信息: Initializing Spring root WebApplicationContext
监听错误啦!