欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-05-09 15:52:57
...

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

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

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

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


03_Java通信_JNDI_demo2远程调用weblogic的数据源
            
    
    博客分类: Java通信 使用JNDI获得weblogic的数据源 

 

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


03_Java通信_JNDI_demo2远程调用weblogic的数据源
            
    
    博客分类: Java通信 使用JNDI获得weblogic的数据源 
 
03_Java通信_JNDI_demo2远程调用weblogic的数据源
            
    
    博客分类: Java通信 使用JNDI获得weblogic的数据源 
 
03_Java通信_JNDI_demo2远程调用weblogic的数据源
            
    
    博客分类: Java通信 使用JNDI获得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 :

03_Java通信_JNDI_demo2远程调用weblogic的数据源
            
    
    博客分类: Java通信 使用JNDI获得weblogic的数据源 
 我们还有操作数据,所以也要使用JDBC的实现,后台的数据库使用的是Oracle,所以在项目中还要导入数据库的驱动。


03_Java通信_JNDI_demo2远程调用weblogic的数据源
            
    
    博客分类: Java通信 使用JNDI获得weblogic的数据源 
 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.运行结果:


03_Java通信_JNDI_demo2远程调用weblogic的数据源
            
    
    博客分类: Java通信 使用JNDI获得weblogic的数据源 
 
 10.请求示意图:


03_Java通信_JNDI_demo2远程调用weblogic的数据源
            
    
    博客分类: Java通信 使用JNDI获得weblogic的数据源 
 
 

  • 03_Java通信_JNDI_demo2远程调用weblogic的数据源
            
    
    博客分类: Java通信 使用JNDI获得weblogic的数据源 
  • 大小: 17.4 KB
  • 03_Java通信_JNDI_demo2远程调用weblogic的数据源
            
    
    博客分类: Java通信 使用JNDI获得weblogic的数据源 
  • 大小: 57.2 KB
  • 03_Java通信_JNDI_demo2远程调用weblogic的数据源
            
    
    博客分类: Java通信 使用JNDI获得weblogic的数据源 
  • 大小: 31.5 KB
  • 03_Java通信_JNDI_demo2远程调用weblogic的数据源
            
    
    博客分类: Java通信 使用JNDI获得weblogic的数据源 
  • 大小: 28 KB
  • 03_Java通信_JNDI_demo2远程调用weblogic的数据源
            
    
    博客分类: Java通信 使用JNDI获得weblogic的数据源 
  • 大小: 40.2 KB
  • 03_Java通信_JNDI_demo2远程调用weblogic的数据源
            
    
    博客分类: Java通信 使用JNDI获得weblogic的数据源 
  • 大小: 41.3 KB
  • 03_Java通信_JNDI_demo2远程调用weblogic的数据源
            
    
    博客分类: Java通信 使用JNDI获得weblogic的数据源 
  • 大小: 53.8 KB
  • 03_Java通信_JNDI_demo2远程调用weblogic的数据源
            
    
    博客分类: Java通信 使用JNDI获得weblogic的数据源 
  • 大小: 95.1 KB
  • 03_Java通信_JNDI_demo2远程调用weblogic的数据源
            
    
    博客分类: Java通信 使用JNDI获得weblogic的数据源 
  • 大小: 67.9 KB