快速业务通道

jboss下配置jndi利用spring的IOC来获得 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16

jboss下配置jndi利用spring的IOC来获得

时间:2011-06-22 csdn博客 畅所宇言

来项目内用的是普通数据源.考虑没有分布式的数据访问.就使用了apache-commons-dbcp.但是后来项目内要加一个第三方的报表制作工具.该工具强制要求使用JNDI来获得连接(该死的)没办法.只有加了.显将配置步骤和一个错误做笔记如下:

1. 环境: windowsXp系统.使用的是jbossGA-4.2.2 sqlserver2000.

项目架构是 Spring+ibatis+struts.

2. 配置步骤1 . 由于jboss会自动查找server\default\deploy目录下的 **-ds.xml文件.并读取其中内容.来得到相应的DataSource,我的文件具体内容如下:

<?xml version="1.0" encoding="UTF-8"?>    <datasources>    <local-tx-datasource>       <jndi-name>jdbc/DataSource</jndi-name>       <connection-url>jdbc:jtds:sqlserver://localhost:1433/fnx</connection-url>       <driver-class>net.sourceforge.jtds.jdbc.Driver</driver-class>       <user-name>sa</user-name>       <password>1234</password>       <metadata>       <type-mapping>MS SQLSERVER2000</type-mapping>       </metadata>      </local-tx-datasource> </datasources>

配置步骤2 . (有部分内容来自网上) 由于使用spring来获取jndi.所以实现了FactoryBean, InitializingBean

get/set方法没加

public class DataSourceFactoryBean implements FactoryBean, InitializingBean { /** 缓存数据源对象 */ private DataSource dataSource; /** 是否jndi数据源 */ private boolean jndi; /** 数据源的名字(如果是jndi数据源) */ private String jndiName; /** jdbc驱动类(非jndi的情况) */ private String driverClassName; /** 数据库的url(非jndi的情况) */ private String url; /** 用户名(非jndi的情况) */ private String username; /** 密码(非jndi的情况) */ private String password; public void afterPropertiesSet() throws Exception {   if (this.isJndi()) {   if (!org.springframework.util.StringUtils.hasText(this.jndiName)) {    throw new IllegalArgumentException("jndiName is required");   }   } else {   if (!org.springframework.util.StringUtils    .hasText(this.driverClassName)) {    throw new IllegalArgumentException(     "driverClassName is required");   }   if (!org.springframework.util.StringUtils.hasText(this.url)) {    throw new IllegalArgumentException("url is required");   }   if (!org.springframework.util.StringUtils.hasText(this.username)) {    throw new IllegalArgumentException("username is required");   }   if (!org.springframework.util.StringUtils.hasText(this.password)) {    throw new IllegalArgumentException("password is required");   }   }   // 在初始化时就创建数据源   this.createDataSource(); } public Object getObject() throws Exception {   DataSource ds = this.createDataSource();   return ds; } public Class getObjectType() {   return javax.sql.DataSource.class; } public boolean isSingleton() {   return true; } protected DataSource createDataSource() {   DataSource ds = this.dataSource;   if (ds == nu

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号