Spring的JNDI数据源连接池配置时产生的疑问

问题描述

在进行Spring的数据源连接池的配置的时候,不能理解以下问题:运行如下代码:public static void main(String[] args) {org.springframework.jndi.JndiObjectFactoryBean jofb = new org.springframework.jndi.JndiObjectFactoryBean();javax.sql.DataSource ds = (javax.sql.DataSource)jofb;org.springframework.jdbc.core.JdbcTemplate jTemplate = new org.springframework.jdbc.core.JdbcTemplate();jTemplate.setDataSource(ds);}会报告如下的错误:Exception in thread "main" java.lang.ClassCastException: org.springframework.jndi.JndiObjectFactoryBean cannot be cast to javax.sql.DataSource从JndiObjectFactoryBean的源码中也可以看到,JndiObjectFactoryBean的父类或所继承的接口都没有继承javax.sql.DataSource接口,所以以下的配置中:<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"><property name="jndiName"><value>java:comp/env/jdbc/portalDataService</value></property></bean><bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"><property name="dataSource"><ref bean="dataSource" /></property></bean> 对org.springframework.jdbc.core.JdbcTemplate的dataSource属性的注入为何能够成功? 问题补充:Copperfield 写道

解决方案

JNDI依赖于容器的,它和普通的bean不大一样,你要使用须借助容器(weblogic等)帮你完成初始化。

时间: 2024-08-22 15:02:17

Spring的JNDI数据源连接池配置时产生的疑问的相关文章

Spring的JNDI数据源连接池配置示例及Spring对JNDI实现分析

在使用 Tomcat服务器 + SpringFramework 进行JavaEE项目的开发部署的时候可以在Tomcat的配置文件中进行JDBC数据源的配置,具体步骤如下(这里省略了工程的建立步骤):   1) 添加如下代码到tomcat的conf目录下的server.xml中: Xml代码   <Context>        <Resource name="jdbc/demoDB" auth="Container"        type=&qu

JDBC数据源连接池配置及应用_java

使用JDBC建立数据库连接的两种方式: 1.在代码中使用DriverManager获得数据库连接.这种方式效率低,并且其性能.可靠性和稳定性随着用户访问量得增加逐渐下降. 2.使用配置数据源的方式连接数据库,该方式其实质就是在上述方法的基础上增加了数据库连接池,这种方式效率高. 数据源连接池的方式连接数据库与在代码中使用DriverManager获得数据库连接存在如下差别: 1)数据源连接池的方式连接数据库是在程序中,通过向一个JNDI(Java Naming and  Directory In

tomcat 几种连接池配置代码(包括tomcat5.0,tomcat5.5x,tomcat6.0)_Tomcat

Tomcat6.0连接池配置 1.配置tomcat下的conf下的context.xml文件,在之间添加连接池配置: 复制代码 代码如下: <Resource name="jdbc/oracle" auth="Container" type="javax.sql.DataSource" driverClassName="oracle.jdbc.driver.OracleDriver" url=" jdbc:or

Spring 配置JNDI(连接池)

1. 找到Tomcat6.0安装目录下conf文件夹里的context.xml文件, 然后打开context.xml,在标签<context></<context>之间加入如下内容:(为了容易理解,我对配置做了较详细的注释) <Resource  name="jdbc/books"         auth="Container"             type="javax.sql.DataSource" 

使用Spring管理数据源连接池

问题描述 不管通过何种持久化技术,都必须通过数据连接访问数据库,在Spring中,数据连接是通过数据源获得的.在以往的应用中,数据源一般是Web应用服务器提供的.在Spring中,你不但可以通过JNDI获取应用服务器的数据源,也可以直接在Spring容器中配置数据源,此外,你还可以通过代码的方式创建一个数据源,以便进行无依赖的单元测试.配置一个数据源Spring在第三方依赖包中包含了两个数据源的实现类包,其一是Apache的DBCP,其二是C3P0.在此重点讲讲C3P0的配置:此后会更新DBCP

Birt报表使用连接池配置

现阶段我们在开发报表的时候,是使用jdbc链接数据库的,为提高报表的运行效率和稳定性,使用连接池进行管理.比较简便和低耦合的解决办法,使用jndi连接池. jdbc和jndi的区别 JDBC -最基本的连接数据库的方式, 每次对数据库打交道的时候 ,连接数据库是需要实例下你实现连接数据库的方法或者类. JNDI DataSource 英文全称是:Java Naming and Directory Interface java 命明接口,当服务启动时 事先把连接数据库的已经连好多条,具体多少条你可

Hibernate程序使用WAS连接池提交事务时出现NullPointerExceptio

Hibernate应用程序部署到WebSphere Application Server 5.1上,使用WAS的连接池,程序在处理了比较多的 session.save(object)操作之后,在执行提交事物 trans.commit()之时出现以下异常 java.lang.NullPointerException at oracle.jdbc.dbaccess.DBData.clearItem(DBData.java:431) at oracle.jdbc.dbaccess.DBDataSetI

websphere连接池配置

问题描述 websphere配置DB2v7.2的连接池,不知哪位高手可以帮帮我如何设置呢?急!! 解决方案 解决方案二:你说说出现什么问题了?关键点在于驱动的配置路径上解决方案三:系统是Linux前面jdbc提供程序那里因为db2是7.2版本不支持jcc我选用的是用户自定义.然后添加连接池的时候,找不到设置connecturl的地方,定制属性不知道该如何命名.希望能得到帮助!解决方案四:1.jdbc提供者创建一个DB2连接池数据源或者XA数据源(如果没有的话就自己配置)2.J2C认证数据条目上创

spring 配置文件中dbcp连接池,jdbc连接池 引入 配置文件properties,但是不能用$符号引用里面的变量问题

spring 配置 注意红色字体 (1)懒加载要设为true,(2)引入配置文件  注意不能懒加载不能设为false,否则$不能引入配置文件中的变量 第一种配置 jdbc连接池 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3