今天是:
设为首页 加入收藏
  首页  文章  下载  小说  幽默  IT  QQ家园  小店  FLASH  汽车  
您现在的位置: 星雨小站 >> 文章 >> 电脑技术 >> 网页制作 >> JSP >> 文章正文 用户登录 新用户注册
当Tomcat遭遇JBDC Driver,出现 Cannot create resource instance !         ★★★★
当Tomcat遭遇JBDC Driver,出现 Cannot create resource instance !
作者:未知 文章来源:不详 点击数: 更新时间:2005-12-19 12:00:19

用Tomcat,最担心的就是配置JNDI的DataSource的时候出现问题,随着各大厂商发布自己的JDBC的实现,兼容性的问题也就越来也突出了...

一般我们都是用Tomcat自带的DBCP来处理,配置如下:
<Resource name="jdbc/MyDS" auth="Container" type="javax.sql.DataSource" />
<ResourceParams name="jdbc/MyDS">
 <parameter>
  <name>driverClassName</name>
  <value>oracle.jdbc.driver.OracleDriver</value>
 </parameter>
 <parameter>
  <name>driverName</name>
  <value>jdbc:oracle:thin:@server:port:sid</value>
 </parameter>
 <parameter>
  <name>user</name>
  <value>########</value>
 </parameter>
 <parameter>
  <name>password</name>
  <value>########</value>
 </parameter>
</ResourceParams>


Oracle JDBC Driver for JDK 1.4 or JDK 1.5
http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/htdocs/jdbc_10201.html

不过这个写法,如果在JBuilderX中,跑Tomcat 4.1,加上最新版的 Oracle JDBC Driver会存在问题,系统抛出的错误为:
javax.naming.NamingException: Cannot create resource instance
 at org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:189)
 at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:301)
 at org.apache.naming.NamingContext.lookup(NamingContext.java:834)
 at org.apache.naming.NamingContext.lookup(NamingContext.java:181)
 at org.apache.naming.NamingContext.lookup(NamingContext.java:822)
 at org.apache.naming.NamingContext.lookup(NamingContext.java:181)
 at org.apache.naming.NamingContext.lookup(NamingContext.java:822)
 at org.apache.naming.NamingContext.lookup(NamingContext.java:181)
 at org.apache.naming.NamingContext.lookup(NamingContext.java:822)
 at org.apache.naming.NamingContext.lookup(NamingContext.java:194)
 at org.apache.naming.SelectorContext.lookup(SelectorContext.java:183)
 at javax.naming.InitialContext.lookup(InitialContext.java:347)


看来DBCP针对java.sql.DataSource相关的实现与ojdbc14.jar存在兼容性的问题,需要按照下面的写法才能OK:
<Resource name="jdbc/MyDS" type="oracle.jdbc.pool.OracleConnectionCacheImpl"/>
<ResourceParams name="jdbc/MyDS">
 <parameter>
  <name>factory</name>
  <value>oracle.jdbc.pool.OracleDataSourceFactory</value>
 </parameter>
 <parameter>
  <name>driverClassName</name>
  <value>oracle.jdbc.driver.OracleDriver</value>
 </parameter>
 <parameter>
  <name>url</name>
  <value>jdbc:oracle:thin:@server:port:sid</value>
 </parameter>
 <parameter>
  <name>user</name>
  <value>########</value>
 </parameter>
 <parameter>
  <name>password</name>
  <value>########</value>
 </parameter>
</ResourceParams>

原来Oracle自己实现了DataSource的工厂类来管理DataSource的建立!
同样发现微软的SQL Server 2000 Driver for JDBC Service Pack 3也存在这个问题!
http://www.microsoft.com/downloads/details.aspx?familyid=07287b11-0502-461a-b138-2aa54bfdc03a&displaylang=en

需要如下配置:
<Resource name="jdbc/MyDS" auth="Container" type="com.microsoft.jdbcx.sqlserver.SQLServerDataSource"/>
<ResourceParams name="jdbc/MyDS">
  <parameter>
    <name>factory</name>
    <value>com.microsoft.jdbcx.sqlserver.SQLServerDataSourceFactory</value>
  </parameter>
  <parameter>
    <name>driverClassName</name>
    <value>com.microsoft.jdbcx.sqlserver.SQLServerDataSource</value>
  </parameter>
  <parameter>
    <name>driverName</name>
    <value>SQLServer</value>
  </parameter>
  <parameter>
    <name>description</name>
    <value>My DataSource</value>
  </parameter>
  <parameter>
    <name>serverName</name>
    <value>########</value>
  </parameter>
  <parameter>
    <name>portNumber</name>
    <value>1433</value>
  </parameter>
  <parameter>
    <name>selectMethod</name>
    <value>cursor</value>
  </parameter>
  <parameter>
    <name>databaseName</name>
    <value>########</value>
  </parameter>
  <parameter>
    <name>user</name>
    <value>########</value>
  </parameter>
  <parameter>
    <name>password</name>
    <value>########</value>
  </parameter>
  <parameter>
    <name>loginTimeout</name>
    <value>3000</value>
  </parameter>
</ResourceParams>


中搜索与
的相似内容
立刻搜索→

文章录入:小雨    责任编辑:小雨 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口



    推荐文章[组图]无损硬盘数据调整…
    普通文章上线[问好,打招呼] QQ表…
    普通文章拜拜[再见,晚安,下线] …
    普通文章钱[钞票,大款] QQ表情
    普通文章[组图]应知应会的5个图…
    普通文章跟我学用“记事本”
    普通文章用好Windows自带的录音…
    普通文章来测试你的网速-比比看…
    推荐文章文件夹加密过程中因误操…
    推荐文章[组图]无损硬盘数据调整…
    推荐文章能够安装多个杀毒软件吗…
    推荐文章爱情专用系列 QQ表情
    推荐文章用画图工具给图片添加文…
    推荐文章老公增加零花钱的请示报…
    推荐文章QQ搞笑表情(二) QQ表情
    推荐文章悠嘻猴 QQ表情
    现场纪实—如何入侵基…
    JSP如何保存用户上次登…
    使用jsp生成彩色汉字验…
    基于JDBC的数据库连接…
    JAVA/JSP学习系列之三…
    JAVA/JSP学习系列之四…
    zip版本Tomcat配置新手…
    JSP报表打印的一种简单…
    Java Servlet和JSP教程
    一、Servlet和JSP概述
    二、设置开发、运行环…
    三、第一个Servlet
    四、处理表单数据
    五、读取HTTP请求头
    六、访问CGI变量

    糯米猪系列 QQ表情

    愚人节qq表情 QQ表情

    花脸猫系列 QQ表情

    uc表情系列 QQ表情
    (只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    版权所有 Copyright© 2004-2005 星空联盟工作室 EMAIL:xingyu@xyu01.com
    给我发消息 给我发消息

    本站Alaxa全球网站排名 (点击查看)(安装Alexa工具条,查看各大网站全球排名)