【问题标题】:Tomcat and JDBCTomcat 和 JDBC
【发布时间】:2011-08-16 16:57:36
【问题描述】:

我正在尝试在 Tomcat 上配置以下内容。

Resource auth="Container" name="jdbc/yourDataSourceName"
         driverClassName="oracle.jdbc.OracleDriver"
         factory="oracle.jdbc.pool.OracleDataSourceFactory"
         type="oracle.jdbc.pool.OracleDataSource" 
         connectionCacheProperties="{}"
         connectionCachingEnabled="true"
         user="foo" 
         password="bar" 
         url="jdbc:oracle:thin:@foo.bar.com:1521:foobar"

当我将以下内容放入我的应用程序 META-INF/context.xml 文件中时,我收到以下错误:

java.lang.ClassCastException: org.apache.tomcat.dbcp.dbcp.BasicDataSource cannot be cast to oracle.jdbc.pool.OracleDataSource

当我把它移到$TOMCAT_HOME/conf/context.xml 时,它工作正常。它不允许我配置特定于应用程序。有什么想法吗?

我的应用程序文件夹的$TOMCAT_HOME/libWEB-INF/lib 中有ojdbc6.jar。请指教。我错过了什么吗?感谢您的宝贵时间。

【问题讨论】:

    标签: java tomcat jdbc jndi classcastexception


    【解决方案1】:

    您可以尽量不要在数据源配置中使用特定的 Oracle 类,例如“OracleDataSourceFactory”。 Oracle Conn.pool 似乎与 DBCP 不兼容。 只定义 driverClass。

    你可以试试这样的:

    <Resource
    name="jdbc/yourDataSourceName" auth="Container"
    type="javax.sql.DataSource"
    driverClassName="oracle.jdbc.OracleDriver"
    url="jdbc:oracle:thin:@foo.bar.com:1521:foobar"
    user="foo" 
    password="bar"
    maxActive="5" maxIdle="1" maxWait="-1"/>
    

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-02
      • 1970-01-01
      • 2013-02-17
      • 2012-06-15
      • 2013-01-06
      • 2013-06-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多