18 Apr 2020
使用 weblogic 的 oracle 数据源
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();
}
}
}
业精于勤,荒于嬉; 行成于思,毁于随。
pnunu
at 19:01