我把oracle9i是安装在本机上的,全局数据库名: orclname,SID:orclsidtomact的版本是5.5的,
struts_config.xml的设定如下:
<struts-config>
  <data-sources>
    <data-source key="oracleDB1" type="org.apache.commons.dbcp.BasicDataSource">
<set-property property="driverClassName"
value="oracle.jdbc.driver.OracleDriver" />
<set-property property="url"
value="jdbc:oracle:thin:@localhost:1521:orclname" />
<set-property property="maxActive"
value="5"/>
<set-property property="username"
value="strutsdb"/>
<set-property property="password"
value="strutsdb"/>
<set-property property="autoCommit"
value="true"/>
</data-source>
</data-sources>
</struts-config>不知道为什么连接数据库时tomcat的后台却报错:
2006-2-5 14:38:58 org.apache.struts.action.ActionServlet initModuleDataSources
严重: Initializing application data source oracleDB1
java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1332)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1181)
at org.apache.struts.util.RequestUtils.applicationClass(RequestUtils.java:119)
at org.apache.struts.util.RequestUtils.applicationInstance(RequestUtils.java:145)
at org.apache.struts.action.ActionServlet.initModuleDataSources(ActionServlet.java:775)
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:1091)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:750)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:130)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:825)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:743)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Unknown Source)请问高手,这个错误是什么原因造成的??

解决方案 »

  1.   

    you need commons-dbcp-1.2.1.jar
      

  2.   

    请问 tomuno :commons-dbcp-1.2.1.jar 是什么包,起什么作用的?是oracle9i的,tomcat5.5的,还是struts的?
      

  3.   

    java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource你把一些struts的包也部署进去
      

  4.   

    org.apache.commons.dbcp.BasicDataSource
    数据源连接池的包没有找到。导进去就可以了。
      

  5.   

    下载了 commons-dbcp-1.2.jar 和 commons-pool-1.2.jar 以后启动tomcat 又发现了其他的错误,我上面的那个配置文件对吗? tomcat5.0和tomcat5.5的配置有什么区别吗?错误信息:
    2006-2-5 16:07:21 org.apache.struts.action.ActionServlet initModuleDataSources
    严重: Initializing application data source oracleDB1
    org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class 'oracle.jdbc.driver.OracleDriver'
    at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:766)
    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:1091)
    at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:750)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:130)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:825)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:743)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
    at java.lang.Thread.run(Unknown Source)
    Caused by: java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1332)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1181)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:760)
    ... 18 more
    2006-2-5 16:07:21 org.apache.catalina.core.ApplicationContext log
    信息: Marking servlet actionServlet as unavailable
    请大虾们接着赐教!!
      

  6.   

    class12.jar版本不对吧,换成9i带的
      

  7.   

    你可能没有把oracle的驱动程序部署到tomcat
      

  8.   

    问题已经解决,原因是没有数据库驱动,没有把class12.jar添加的classpath中去。
    运行了没有任何问题,不过今天上午我开机时,运行struts程序时,连接数据库的时候,却出现了新的问题,我没有改动设置,唯一的操作是打开了防火墙,后来我又关闭了防火墙,有什么影响吗?
    错误信息如下:
     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)