posts - 195, comments - 34, trackbacks - 0, articles - 1

          zz視頻總結(jié)-jndi

          Posted on 2009-03-24 10:22 小強(qiáng)摩羯座 閱讀(320) 評(píng)論(0)  編輯  收藏 所屬分類: Java
          視頻總結(jié)-jndi
          jndi:java命名和目錄接口
               jndi把object和context(還可以有subcontext)組織成一個(gè)jndi樹(shù)
          這樣object就可一被綁定到不同的context上面
          jndi是一種查找服務(wù),用于查找:
              web應(yīng)用環(huán)境變量
              EJB和他們的環(huán)境變量
              通過(guò)DataSource的數(shù)據(jù)庫(kù)連接池
              JMS沒(méi)有表和連接工廠
              其他服務(wù)
          不要將jndi當(dāng)做數(shù)據(jù)庫(kù)使用
              jndi對(duì)象存儲(chǔ)在內(nèi)存中
              訪問(wèn)jndi對(duì)象與網(wǎng)絡(luò)性能有關(guān)
          jndi樹(shù):
          InitialContext是JNDI樹(shù)所有搜索的起點(diǎn)
          對(duì)象綁定到j(luò)ndi樹(shù)上,java對(duì)象是樹(shù)葉,context是節(jié)點(diǎn)
          一個(gè)綁定把對(duì)象與一個(gè)邏輯名和一個(gè)context關(guān)聯(lián)起來(lái)
          創(chuàng)建Initial Context
          從服務(wù)器端對(duì)象連接到j(luò)ndi
          //創(chuàng)建一個(gè)InitialContext
          context ctx=new InitialContext();//鏈接到當(dāng)前的jndi樹(shù)上
          從任何一個(gè)地方連接到j(luò)ndi
            .創(chuàng)建Environment對(duì)象
             weblogic.jndi.Enviroment env=new Weblogix.jndi.Enviroment();
             填寫Enviroment
             env.setProviderurl("t3://127.0.0.1:7001");//weblogic server的位置
             env.setSecurityPrincipal("system");//安全信息
             env.setSecurityCredentiais("password");
             //使用Environment對(duì)象創(chuàng)建InitialContext
             context ctx=env.getInitialContext();
            .hashtable的用法....
          創(chuàng)建subcontext
            創(chuàng)建一個(gè)用于綁定對(duì)象的subcontext
            創(chuàng)建Environment對(duì)象
            context ctx=env.getInitialContext();//首先獲得已經(jīng)存在的subcontext或者initialcontext
            填寫Environment
            context subcontext=ctx.createSubcontext("newSubcontext");
            subcontext.rebind("boundobject",object);
            subcontext.close();
            ctx.close();
          其他鏈接到j(luò)ndi的方法:
           
          使用ConstantProperties名和hashtable類:
           HashTable env=new HashTable();
           env.put(Context.initial_context_factory,"weblogic.jndi.WLInitialContextFactory");
           env.put(Context.procider_url,"t3://localhost:7001");
           env.put(Context.security_principal,"system");
           env.put(Context.crrdentials,"password");
           Context ctx=new InitialContext(env);
          另一個(gè)例子:使用hardcoded名和properties類
           Properties env=new Properties();
           env.setProperties("java.naming.factory.initial","weblogic.jndi.WLInitialContextFactory");
           env.setProperties("java.naming.provider.url","t3://localhost:7001")
           env.setProperties("java.naming.security.principal","system");
           env.setProperties("java.naming.security.credentials","password");
           Context ctx=new InitialContext(env);
          jndi.properties
          .jndi.properties文件為所有的Initial Contexts設(shè)置默認(rèn)的屬性
          .jndi.properties文件的搜索順序
              .classpath
              .$JAVA_HOME/lib
          實(shí)例:
           java.naming.factoyr.initial=weblogic.jndi.WLInitialContextFactory
           java.naming.security.url=t3://localhost:7001
           java.naming.security.pricipal=system
           java.naming.security.credentials=password
           使用默認(rèn)值:
           Context ctx=new InitialContext();
          從jndi查找:
          .lookup()從jndi樹(shù)獲得對(duì)象
          .通過(guò)lookup()返回的對(duì)象必須映射到他們合適的類型
          try{
          //先獲得InitialContext
          //Context ic=new Context();
          Object obj;
          obj=ic.lookup("javax.transation.UserTransaction");
          UserTransaction ut=(UserTransaction)obj;
          ut.begin();
          .....
          ic.close();
          }catch(NamingEcxeption e){....}
          遠(yuǎn)程綁定對(duì)象:
          .遠(yuǎn)程綁定到遠(yuǎn)程命名服務(wù)的對(duì)象必須是序列化的
          .訪問(wèn)命名服務(wù)時(shí),對(duì)象是采用復(fù)制機(jī)制
          查找的對(duì)象是序列化到客戶端的
          一個(gè)binding實(shí)例:
          public static Context getInitialContext()throws NamingException{
             創(chuàng)建Environment對(duì)象
             weblogic.jndi.Environment env=new Weblogix.jndi.Environment();
             填寫Enviroment
             env.setProviderurl("t3://127.0.0.1:7001");//weblogic server的位置
             env.setSecurityPrincipal("system");//安全信息
             env.setSecurityCredentiais("password");
             //使用Environment對(duì)象創(chuàng)建InitialContext
             context ctx=env.getInitialContext();
             return ctx;
          }
          //獲得Initial Context
          Context ctx=getInitialContext();
          //創(chuàng)建名為band的對(duì)象
          Bank myBank=new Bank();
          //把對(duì)象綁定到j(luò)ndi樹(shù)
          ctx.rebind("theBank",myBank);
          ctx.close();



          主站蜘蛛池模板: 新乡市| 内乡县| 长宁区| 镇赉县| 五大连池市| 石台县| 蕉岭县| 和平县| 博罗县| 林甸县| 启东市| 科技| 永福县| 丰都县| 绍兴市| 巴塘县| 涞水县| 昭苏县| 泉州市| 同德县| 漯河市| 平山县| 内丘县| 通州市| 化德县| 邵武市| 德兴市| 北海市| 宁津县| 始兴县| 大姚县| 重庆市| 区。| 兴义市| 蒙山县| 当阳市| 依安县| 交城县| 兴业县| 镇江市| 景洪市|