您的位置:首页 > 编程语言 > Java开发

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

2017-12-29 14:42 916 查看
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.请求示意图:



 
 



大小: 17.4 KB



大小: 57.2 KB



大小: 31.5 KB



大小: 28 KB



大小: 40.2 KB



大小: 41.3 KB



大小: 53.8 KB



大小: 95.1 KB



大小: 67.9 KB

查看图片附件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: