之前项目使用SQlServer2000能正常运行,后来需要改为SQLServer2005,
连接时出现如下错误:
严重: StandardWrapper.Throwable
com.dstruct.exceptions.DatabaseException: 在启动数据库连接时发生错误
at com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:106)
at com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:65)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:468)
at com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.getConnection(AbstractPoolBackedDataSource.java:125)
at com.dstruct.C3P0PooledConnection.getConnection(C3P0PooledConnection.java:110)
at com.dstruct.DataStructStartup.startDatabase(DataStructStartup.java:22)
at com.dstruct.servlet.DataStruct.init(DataStruct.java:50)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1161)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4042)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4348)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:920)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:883)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:566)
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:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: com.dstruct.exceptions.DatabaseException: java.sql.SQLException: An attempt by a client to checkout a Connection has timed out.
... 33 more
Caused by: java.sql.SQLException: An attempt by a client to checkout a Connection has timed out.
... 33 more
Caused by: com.mchange.v2.resourcepool.TimeoutException: The pool timed out while waiting to acquire a resource -- timeout at awaitAvailable()
at com.mchange.v2.resourcepool.BasicResourcePool.awaitAvailable(BasicResourcePool.java:1157)
at com.mchange.v2.resourcepool.BasicResourcePool.prelimCheckoutResource(BasicResourcePool.java:405)
at com.mchange.v2.resourcepool.BasicResourcePool.checkoutResource(BasicResourcePool.java:351)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:466)
... 30 more
2012-10-4 17:10:26 org.apache.catalina.core.StandardContext loadOnStartup
严重: Servlet /DataStruct threw load() exception
com.mchange.v2.resourcepool.TimeoutException: The pool timed out while waiting to acquire a resource -- timeout at awaitAvailable()
at com.mchange.v2.resourcepool.BasicResourcePool.awaitAvailable(BasicResourcePool.java:1157)
at com.mchange.v2.resourcepool.BasicResourcePool.prelimCheckoutResource(BasicResourcePool.java:405)
at com.mchange.v2.resourcepool.BasicResourcePool.checkoutResource(BasicResourcePool.java:351)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:466)
at com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.getConnection(AbstractPoolBackedDataSource.java:125)
at com.dstruct.C3P0PooledConnection.getConnection(C3P0PooledConnection.java:110)
at com.dstruct.DataStructStartup.startDatabase(DataStructStartup.java:22)
at com.dstruct.servlet.DataStruct.init(DataStruct.java:50)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1161)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4042)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4348)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:920)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:883)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:566)
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:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
2012-10-4 17:10:26 org.apache.catalina.loader.WebappClassLoader validateJarFile
信息: validateJarFile(F:\Workspaces\.metadata\.me_tcat\webapps\Test\WEB-INF\lib\servlet-api.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
2012-10-4 17:10:27 org.apache.catalina.core.ApplicationContext log
信息: Initializing Spring root WebApplicationContext
2012-10-4 17:10:31 org.apache.catalina.core.ApplicationContext log
信息: Set web app root system property: 'webapp.root' = [F:\Workspaces\.metadata\.me_tcat\webapps\StudySystem3_0\]
2012-10-4 17:10:31 org.apache.catalina.core.ApplicationContext log
信息: Initializing log4j from [F:\Workspaces\.metadata\.me_tcat\webapps\StudySystem3_0\WEB-INF\classes\log4j.properties]
2012-10-4 17:10:33 org.apache.catalina.core.ApplicationContext log
信息: Initializing Spring root WebApplicationContext
log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader).
log4j:WARN Please initialize the log4j system properly.
2012-10-4 17:10:36 org.apache.catalina.core.ApplicationContext log
信息: Initializing WebApplicationContext for Struts ActionServlet 'action', module ''
2012-10-4 17:10:37 org.apache.coyote.http11.Http11Protocol start
信息: Starting Coyote HTTP/1.1 on http-8080
2012-10-4 17:10:37 org.apache.jk.common.ChannelSocket init
信息: JK: ajp13 listening on /0.0.0.0:8009
2012-10-4 17:10:37 org.apache.jk.server.JkMain start
信息: Jk running ID=0 time=0/44  config=null
2012-10-4 17:10:37 org.apache.catalina.startup.Catalina start
信息: Server startup in 15699 ms已经装了SP4补丁,开启了TCP/IP 1433端口;
直接使用JDBC或Hibernate都能成功链接,
从网上下载别人的项目进行连接,也是报了同样的错误;
新手第一次发帖,希望能得到大家帮助,谢谢!

解决方案 »

  1.   

    在同事的提醒下解决了。
    原因是:项目需要用到两个数据库,但是在SQLSERVER2005中只创建了主要的一个,
    所以在用Hibernate指定连接到已经创建的数据库时能正常连接,
    而在项目启动时却会报错,因为项目启动时会检测另外一个数据库,
    就有了错误提示中的:“在启动数据库连接时发生错误”。
    只是我一直大意没有留意到另外一个数据库。