在weblogic中配置和使用dataSource

来源:互联网 发布:在淘宝网上买手机可靠吗 编辑:程序博客网 时间:2024/04/26 11:43

以weblogic8.1为例:
怎么配置domain就不说了,启动domain,进入:http://localhost:7001/console,在首页找到

Services Configurations Jdbc -> Connection pools,或者在左面面板中找services ->jdbc-

>Connection pools,点Connection pools,点Configure a new JDBC Connection Pool...
选择使用的数据库,比如MS SQL Server,选择driver class, 这里需要提醒的是,如果你用了外部的驱

动jar包, 要copy到{DOMAIN_DIR}/lib下面(重起domain才生效);
continue进入Define connection properties, name可以随便取,Database Name对应数据库中对应

的database,Host Name数据库的主机名或ip,比如localhost,port端口号,比如ms sqlserver2000是

1433, ms sqlserver2005是2431, oracle为1521等等;username password就不说了;

continue进入下一页;


这一页大多数时候都不需要更改,但是有一个情况比较贱, 如果使用2005的MS数据库,并使用

sqljdbc.jar的驱动jar包,那就需要把这一页的driver classname改一下:把默认的

com.microsoft.jdbc.sqlserver.SQLServerDriver(这是2000的驱动程序的path) 改成

com.microsoft.sqlserver.jdbc.SQLServerDriver(这是2005的驱动程序的path),然后你可以点test

driver configuration测试一下连接是否成功;然后next直到把该pool部署到server上;
pool配置好了就可以配置datasource,上面同样的方式找到data source, 点Configure a new JDBC

Data Source;

name和jndi name可以随便写,要提醒的是jndi name会在程序中用到;其他两选项默认

,continue到下一页;选择一个pool也就是你刚才配置好的pool.然后一路next直到部署到server上,

到此为止一个weblogic的jndi的datasource就配置好了。
在spring的bean配置文件中培植一个dataSource:
<bean id="myDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
    <property name="jndiName">
        <value>MyDataSource</value>
    </property>
</bean>
需要注意的是要使用JndiObjectFactoryBean,其中属性jndiName的value就是你刚才配置datasource时

候填写的jndi name;
然后这个dataSource就可以被dao, service,或其他组件使用了,比如如果使用了iBatis,需要配置一个

SqlMapClient, 则:
<bean id="mySqlMapClient"

class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
  <property name="configLocation" value="WEB-INF/SqlMapConfig.xml"/>
  <property name="dataSource">
    <ref local="myDataSource"/>
  </property>
</bean>
如果使用了weblogic9.2或者以上的版本,配置将稍有不同,9.2中似乎在配置datasource的时候顺带把

pool配置好了, 不过操作都大同小异;
如果你可以编辑domain配置文件config.xml,直接更改config.xml效果也是一样的,比如我们刚才配置

好了pool和dataSource,则会在config.xml中增加这样的两条:
<JDBCConnectionPool
    DriverName="oracle.jdbc.xa.client.OracleXADataSource"
   

Name="MyPool" PasswordEncrypted="{3DES}+oHKU36Td+4="
    Properties="user=xxx"

Targets="cgServer"
    TestConnectionsOnCreate="true" TestConnectionsOnRelease="true"
  

 TestConnectionsOnReserve="true"
    TestTableName="SQL SELECT 1 FROM DUAL"

URL="jdbc:oracle:thin:@xxx:1521:xxx"/>

<JDBCTxDataSource JNDIName="MyDataSource" Name="MySDataSource"
    PoolName="MyPool"
Targets="csServer"/>