使用 weblogic 的 oracle 数据源

453 阅读2分钟
原文链接: mp.weixin.qq.com

1. 生成数据源需要的wlfullclient.jar

wlfullclient.jar生成方式

进入weblogic的安装目录

例如 

E:\tools\weblogic\wls12213\wlserver\server\lib 

运行 

java -jar wljarbuilder.jar

就能生成wlfullclient.jar文件

2. weblogic 配置数据源

基本上一路下一步。填写数据库基本信息即可。

看到测试成功,即为配置正常。

3. 项目配置修改

此处只列出spring项目想改方式。

修改spring-context.xml,注释掉原有的dataSource的

添加以下注解

<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean" >   <property name="jndiName">      <value>bgc-web-test</value>   </property>   <property name="resourceRef">      <value>true</value>   </property>   <property name="jndiEnvironment">      <props>         <prop key="java.naming.provider.url">t3://127.0.0.1:7001</prop>         <prop key="java.naming.factory.initial">weblogic.jndi.WLInitialContextFactory</prop>      </props>   </property></bean>

4. 部署项目

操作步骤

部署 ==> 安装 ==> 选择war包 ==> 下一步 ==> ··· ==> 完成

5. 通过其他方式验证数据源是否正确

import javax.naming.Context;import javax.naming.InitialContext;import javax.sql.DataSource;import java.sql.Connection;import java.sql.SQLException;import java.util.Properties;/** * @author: pnunu * @Date: 2020/4/27 16:03 * @description: */public class DatabaseConnection {    public static void main(String[] args) throws Exception {        System.out.println(getConnection());    }    //初始化上下文需要用到的工厂类    private final static String INITIAL_CONTEXT_FACTORY = "weblogic.jndi.WLInitialContextFactory";    //WebLogic服务器的访问地址    private final static String PROVIDER_URL = "t3://127.0.0.1:7001";    //WebLogic服务器中的JNDI数据源名称    private final static String ORACLE_JNDI_NAME = "jdni-name";    //存储从JNDI容器中取出来的数据源    private static DataSource dsOracle = null;    static {        try {            //初始化WebLogic Server的JNDI上下文信息            Context context = getInitialContext();            //获取数据源对象            dsOracle = (DataSource) context.lookup(ORACLE_JNDI_NAME);        } catch (Exception e) {            e.printStackTrace();        }    }    /**     * MethodName: getInitialContext     * Description: 获得WebLogic ServerJNDI初始上下文信息     *     * @return     * @throws Exception     */    private static Context getInitialContext() throws Exception {        Properties properties = new Properties();        //指定工厂类        properties.put(Context.INITIAL_CONTEXT_FACTORY, INITIAL_CONTEXT_FACTORY);        //指定服务器访问地址        properties.put(Context.PROVIDER_URL, PROVIDER_URL);        return new InitialContext(properties);    }    /**     * MethodName: getOracleConnection     * Description: 获取Oracle数据库连接     *     * @return     * @throws SQLException     */    public static Connection getConnection() throws SQLException {        return dsOracle.getConnection();    }    /**     * MethodName: CloseConnection     * Description: 关闭数据库连接     *     * @return     * @throws SQLException     */    public static void Close() throws SQLException {        if (dsOracle != null) {            dsOracle.getConnection().close();        }    }}