真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

使用JNDI的優(yōu)點有哪些

使用JNDI的優(yōu)點有哪些?相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

站在用戶的角度思考問題,與客戶深入溝通,找到愛民網(wǎng)站設(shè)計與愛民網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:做網(wǎng)站、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、空間域名、網(wǎng)站空間、企業(yè)郵箱。業(yè)務(wù)覆蓋愛民地區(qū)。

一、JNDI是什么?

JNDI--Java 命名和目錄接口(Java Naming and Directory Interface),是一組在Java應(yīng)用中訪問命名和目錄服務(wù)的API。
二、JNDI好處

解耦:通過注冊、查找JNDI服務(wù),可以直接使用服務(wù),而無需關(guān)心服務(wù)提供者,這樣程序不至于與訪問的資源耦合!

JNDI優(yōu)點 

包含了大量的命名和目錄服務(wù),使用通用接口來訪問不同種類的服務(wù);

可以同時連接到多個命名或目錄服務(wù)上;

建立起邏輯關(guān)聯(lián),允許把名稱同Java對象或資源關(guān)聯(lián)起來,而不必知道對象或資源的物理ID。

JNDI程序包:  
javax.naming:命名操作;   
javax.naming.directory:目錄操作;   
javax.naming.event:在命名目錄服務(wù)器中請求事件通知;   
javax.naming.ldap:提供LDAP支持;   
javax.naming.spi:允許動態(tài)插入不同實現(xiàn)。

利用JNDI的命名與服務(wù)功能來滿足企業(yè)級APIs對命名與服務(wù)的訪問,諸如EJBs、JMS、JDBC 2.0以及IIOP上的RMI通過JNDI來使用CORBA的命名服務(wù)。

三、JNDI架構(gòu)與原理

相比較架構(gòu)與原理,更關(guān)注與使用,故略!

四、JNDI使用
在J2EE容器(如weblogic、websphere、jboss等)中使用:

在weblogic環(huán)境下查找tuxedo 連接     

//在weblogic環(huán)境查找tuxedo連接 
Context ctx = new InitialContext(); 
TuxedoConnectionFactory tuxedoFactory = (TuxedoConnectionFactory) ctx.lookup("tuxedo.services.TuxedoConnection");

在web容器查找數(shù)據(jù)源

Context ctx=new InitialContext(); 
DataSource ds=(Datasource)ctx.lookup("java:comp/env/jdbc/mydatasource");

重點關(guān)注Context ctx = new InitialContext(),上面的代碼在容器下能夠很好的工作,尤其是查找數(shù)據(jù)源的代碼,無論是在tomcat,還是在weblogic、jboss,但如果脫離了容器,我們將得到異?!癗oInitialContextException”,這是為什么呢?

原因很簡單,就是不存在相關(guān)的context,其本質(zhì)是JNDI的服務(wù)提供者環(huán)境,即誰將提供此環(huán)境!

為了能夠使上面的代碼工作,我們需要使用帶參的構(gòu)造子InitialContext(Hashtable),指定JNDI服務(wù)提供者環(huán)境信息,以weblogic環(huán)境為例:

Hashtable env = new Hashtable(); 
env.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory"); 
env.put(Context.PROVIDER_URL,"t3://localhost:7001"); 
InitialContext ctx = new InitialContext(env);

但上面的代碼不適合WebSphere、jboss等環(huán)境,原因在于所需環(huán)境信息不同,那么,Context ctx = new InitialContext()是如何做到在各個j2ee容器下有效地呢?原因在于這個默認的構(gòu)造子是從System.properties讀取相關(guān)的環(huán)境信息的,由此不難猜出在各種J2EE容器下,如weblogic、jboss,它們都自己為自己設(shè)置了相應(yīng)的信息!下面是一個關(guān)于System.properties設(shè)置JNDI服務(wù)環(huán)境的例子:

System.setProperty(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory"); 
System.setProperty(Context.PROVIDER_URL, "t3://localhost:7001"); 
InitialContext ctx = new InitialContext();

五、借助Spring完成JNDI查找

對于手頭的weblogic,給出常用的兩個查找例子,做個備忘吧!

查找tuxedo connnection:

   
     
      tuxedo/services/TuxedoConnection 
     
     
     false 
     
     
      
        
      t3://localhost:7001  
      weblogic.jndi.WLInitialContextFactory  
      
     

查找DataSource:

   
     
      java:comp/env/jdbc/myDatasource 
     

看完上述內(nèi)容,你們掌握使用JNDI的優(yōu)點有哪些的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!


當前文章:使用JNDI的優(yōu)點有哪些
路徑分享:http://weahome.cn/article/gosods.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部