eclipse Struts
配置struts中的struts-config.xml文件连接Oracle9istruts-config.xml中的<data-sources>配置如下:
<data-sources>
<data-source type="org.apache.commons.dbcp.BasicDataSource">
    <set-property
      property="driverClassName"
      value="oracle.jdbc.driver.OracleDriver" />
    <set-property
      property="url"
      value="jdbc:oracle:thin:@localhost:1251:magic" />
    <set-property
      property="username"
      value="system" />
    <set-property
      property="password"
      value="123" />    
    <set-property
      property="defaultAutoCommit"
      value="true" /> 
    <set-property
      property="maxActive"
      value="40" />
    <set-property
      property="maxIdle"
      value="10" />
    <set-property
      property="maxWait"
      value="5000" />
    <set-property
      property="defaultReadOnly"
      value="false" />
</data-source>
</data-sources>
但是启动tomcat5.0时提示严重: Initializing application data source org.apache.struts.action.DATA_SOURCE
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.setLogWriter(BasicDataSource.java:598)
at org.apache.struts.action.ActionServlet.initModuleDataSources(ActionServlet.java:778)
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:331)
at javax.servlet.GenericServlet.init(GenericServlet.java:211)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1029)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:862)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4013)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4357)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1083)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:789)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1083)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:478)
at org.apache.catalina.core.StandardService.start(StandardService.java:480)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:2313)
at org.apache.catalina.startup.Catalina.start(Catalina.java:556)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:287)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:425)
Caused by: java.sql.SQLException: Io 异常: The Network Adapter could not establish the connection
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:333)
at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:404)
at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:468)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:314)
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)
... 21 more
    我的Oracle9i中SQL*Plus经测试可以正常启动啊,如下,
SQL*Plus: Release 9.2.0.1.0 - Production on 星期日 7月 20 12:05:31 2008Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.
连接到: 
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - ProductionSQL> 但怎么就提示上面的异常啊??????????  我已经连接了整整24小时,     
  双眼红肿.     
  唉..........   
  请各位大虾为我解除难题啊.   
  谢谢了! 

解决方案 »

  1.   

    using 'lsnrctl status' to check whether your listener can work well.
    FYI:http://203.208.37.104/search?q=cache:RTHWXW9xVXkJ:www.itzhe.cn/article/20080528/147338.html+eclipse+Struts+oracle+9i+The+Network+Adapter+could+not+establish+the+connection&hl=zh-CN&ct=clnk&cd=5&gl=cn&st_usg=ALhdy2-ywZFkqQRyTpa_ARjRVsLwnq5nsg
      

  2.   

    我从新安装和配置了一遍,问题已经解决了。现在是连接上了Oracle9i
    但是在使用select语句时,使用如下操作,Statement stmt = conn.createStatement();
    ResultSet rset = stmt.executeQuery(sql.toString());
    ResultSetMetaData metaData = rset.getMetaData();  
    int cnt = metaData.getColumnCount();数据库里中已经建立好了表,而且有3条记录,并且再debug下,以上代码已经通过,
    但是查看rset中,竟然是空的,这是为什么??求助各位大虾!!!!!!
      

  3.   

    ResultSet rset = stmt.executeQuery(sql.toString()); 
    System.out.print(sql.toString());
    //查看你执行的sql是否正确啊。
    ResultSetMetaData metaData = rset.getMetaData();  
    int cnt = metaData.getColumnCount(); 
    System.out.print(cnt);
      

  4.   


    执行的sql语句
    SELECT  *  FROM MEMBER  WHERE  UserName = 'Chilean'是正确的,而且还检索出了一条记录,但是 Statement stmt = conn.createStatement(); 
    ResultSet rset = stmt.executeQuery(sql.toString()); 
    ResultSetMetaData metaData = rset.getMetaData();  
    int cnt = metaData.getColumnCount(); 中rset还是null,没有记录!!!!!!!!!!!!!!!!!!!!!!!!!怎么回事啊???
      

  5.   

    首先你先确定你的数据库有没有连上,如果没有连上写statement也是白写。
    再次rset没有记录,去debug,查找stmt.executeQuery的值。
    我感觉是你JDBC上面的问题。
      

  6.   

    数据库已经确认连接上了,debug下stmt.executeQuery值也是null
    郁闷死了,昨天晚上整到到3点多,到底怎么回事呢?在线等啊………………