03_Java通信_JNDI_demo2远程调用weblogic的数据源

demo1中我们简单实现了一个通过JNDI来获得person这个对象,但是因为运行在同一个项目中,表现的形式不是那么强烈。

下面我们使用远程的web服务器上的数据源来测试一下。远程weblogic服务器上定义一个数据源。在本地通过JNDI获得这个数据源,并且查询远程数据源中的数据。

在操作之前先来创建先决条件:

1.查看本地IP,确保weblogic服务器和本地不在一起


 

2.登陆weblogic,定义数据源(具体定义步骤在此就不细讲,不会的可以在网上查一下)



 

 

以上是JNDI服务器的设置,简单说就是在weblogic上面创建数据源。

下面使用JNDI获得这个数据源。

6.在第一节JNDI概念中说过,Java只提供了JNDI的接口,具体的实现都是不同厂商提供。所以我们势必要导入weblogic的JNDI的实现。

如何生成weblogic JNDI的实现?

生成与JDK版本对应的weblogicjar,利用cmd 进入到weblogic_home 路径下进入到server/lib目录,然后运行  JDK  1.6 命令 " java -jar wljarbuilder.jar" , 会生成wlfullclient.jar :


 我们还有操作数据,所以也要使用JDBC的实现,后台的数据库使用的是Oracle,所以在项目中还要导入数据库的驱动。



 7.我们还是建立普通的Java项目,导入上面创建好的weblogic的jar包和数据库操作的jar包。

8.开发代码:

import java.rmi.registry.LocateRegistry;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;


public class Test {
	public static void findPerson() throws Exception{
		
		//配置JNDI工厂和JNDI的url
		System.setProperty(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
		System.setProperty(Context.PROVIDER_URL, "t3://10.1.71.**:7001");
		
		//初始化
		InitialContext ctx = new InitialContext();
		
		//获取datasoures
		DataSource  ds = (DataSource) ctx.lookup("dataSourceDBaihis");
		
		//授权
		Connection  conn = ds.getConnection("weblogic", "*****");  //登陆weblogic的用户名、密码
	    
		//正常操作数据
		Statement stmt=conn.createStatement();
	    String sql="select riskcode,riskname from pd_lmrisk";
	    ResultSet rs=stmt.executeQuery(sql);
	    while (rs.next()){
	        System.out.println("险种编码:"+rs.getString(1)+" 险种名称:"+rs.getString(2));
	    }
	}
	public static void main(String[] args) throws Exception {
		
		findPerson();
	}
}

  PS:url和weblogic的用户名和密码请自行填写

9.运行结果:



 
 10.请求示意图:



 
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值