我在Tomcat中部署里一个系统,数据库连的是sqlserver,可是当我启动Tomcat的时候总是以下错误Exception in thread "Timer-0" org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create Po
olableConnectionFactory (Io 异常: The Network Adapter could not establish the connection)
Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Io 异常: The Network Adapter could not establish the connection)
        at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:855)
        at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
        at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:112)
        at org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy.getConnection(TransactionAwareDataSourceProxy.java:108)
        at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:112)
        at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:77)
        at org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:182)
        at org.springframework.orm.ibatis.SqlMapClientTemplate.executeWithListResult(SqlMapClientTemplate.java:219)
        at org.springframework.orm.ibatis.SqlMapClientTemplate.queryForList(SqlMapClientTemplate.java:266)
        at com.safetys.sqldao.ZhuaQuDao.viewZhuaQuList(ZhuaQuDao.java:40)
        at com.safetys.service.AutoCatchTask.run(AutoCatchTask.java:33)
        at java.util.TimerThread.mainLoop(Unknown Source)
        at java.util.TimerThread.run(Unknown Source)
Caused by: java.sql.SQLException: Io 异常: The Network Adapter could not establish the connection
        at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:133)
        at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:115)
        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:221)
        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:293)
        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:646)
        at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:454)
        at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:493)
        at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:198)
        at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:29)
        at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:502)
        at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:37)
        at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:290)
        at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:877)
        at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:851)
        ... 12 more
log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader).
log4j:WARN Please initialize the log4j system properly.
2009-3-21 16:26:52 org.apache.catalina.loader.WebappClassLoader validateJarFile
信息: validateJarFile(D:\Tomcat 6.0\webapps\cas\WEB-INF\lib\servlet-api-2.4.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
2009-03-21 16:27:10,745 ERROR [org.hibernate.util.JDBCExceptionReporter] - <Cannot create PoolableConnectionFactory (Io 异常: The Network Adapter could not establish the connection)>
2009-03-21 16:27:22,558 INFO [org.jasig.cas.web.flow.AuthenticationViaFormAction] - <FormObjectClass not set.  Using default class of org.jasig.cas.authentication.principal.UsernamePasswordCredentials
 with formObjectName credentials and validator org.jasig.cas.validation.UsernamePasswordCredentialsValidator.>
2009-03-21 16:27:23,155 INFO [org.jasig.cas.ticket.registry.support.DefaultTicketRegistryCleaner] - <Starting cleaning of expired tickets from ticket registry at [Sat Mar 21 16:27:23 GMT 2009]>
2009-03-21 16:27:23,189 INFO [org.jasig.cas.ticket.registry.support.DefaultTicketRegistryCleaner] - <0 found to be removed.  Removing now.>
2009-03-21 16:27:23,200 INFO [org.jasig.cas.ticket.registry.support.DefaultTicketRegistryCleaner] - <Finished cleaning of expired tickets from ticket registry at [Sat Mar 21 16:27:23 GMT 2009]>
2009-3-21 16:27:23 org.apache.coyote.http11.Http11Protocol start
信息: Starting Coyote HTTP/1.1 on http-8321
2009-3-21 16:27:24 org.apache.jk.common.ChannelSocket init
信息: JK: ajp13 listening on /0.0.0.0:8009
2009-3-21 16:27:24 org.apache.jk.server.JkMain start
信息: Jk running ID=0 time=1/142  config=null
2009-3-21 16:27:24 org.apache.catalina.startup.Catalina start
信息: Server startup in 128662 ms
Exception in thread "Timer-3" org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create Po
olableConnectionFactory (Io 异常: The Network Adapter could not establish the connection)
Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Io 异常: The Network Adapter could not establish the connection)
        at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:855)
        at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
        at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:112)
        at org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy.getConnection(TransactionAwareDataSourceProxy.java:108)
        at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:112)
        at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:77)
        at org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:182)
        at org.springframework.orm.ibatis.SqlMapClientTemplate.executeWithListResult(SqlMapClientTemplate.java:219)
        at org.springframework.orm.ibatis.SqlMapClientTemplate.queryForList(SqlMapClientTemplate.java:266)
        at com.safetys.sqldao.ZhuaQuDao.viewZhuaQuList(ZhuaQuDao.java:40)
        at com.safetys.service.AutoCatchTask.run(AutoCatchTask.java:33)
        at java.util.TimerThread.mainLoop(Unknown Source)
        at java.util.TimerThread.run(Unknown Source)
Caused by: java.sql.SQLException: Io 异常: The Network Adapter could not establish the connection
        at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:133)
        at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:115)
        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:221)
        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:293)
        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:646)
        at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:454)
        at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:493)
        at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:198)
        at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:29)
        at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:502)
        at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:37)
        at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:290)
        at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:877)
        at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:851)

解决方案 »

  1.   

    我用的Oracle数据库,启动tomcat时也报这个错误。
    Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Io 异常: The Network Adapter could not establish the connection)
    不知楼主已经解决了没?给我个提示
      

  2.   

    出现这个问题的原因应该是TCP的端口没有打开,建立楼主先用jdbc写个程序测试下连接数据库是否正常
      

  3.   

    上面连接sqlserver出现那样的问题是我自己搞错了,这个错误是另个项目连接Oracle时报的,我这边只安装了oracle的客户端,服务器端安装在我同事的那台电脑上,当局域网通,外网不通的时候就会报这个错误,但是我用PL/SQL是能访问到数据库的,同时我另一个同事也装了oracle客户端的,局域网通,外网不通的时候,他启动Tomcat的时候就不会报这个错,我不知道这个操作系统是否有关系,我用的是vista,他们用的都是windows XP的!
      

  4.   

    参考一下这个....
    http://tieba.baidu.com/f?kz=396324281