免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
JNDI有關(guān)InitialContext()的困惑

Context initial = new InitialContext();
Object objref = initial.lookup("java:comp/env/ejb/SimpleConverter");    

一般情況下,intial.lookup("")中的參數(shù)就是你的JNDI名稱。但是用的應(yīng)用服務(wù)器,是把JNDI名放到j(luò)ava:comp/env/ejb/后面的。兩種方式都沒(méi)有錯(cuò)。比如:
TomCat5.0中使用的是Object objref = initial.lookup("java:comp/env/ejb/SimpleConverter"); WebLogic6.1中使用的是:
Object objref = initial.lookup("HelloHome");

InitialContext的構(gòu)造方法主要是準(zhǔn)備JNDI的訪問(wèn)環(huán)境,如果不加參數(shù),那就意味著是用本地匿名訪問(wèn),也就是說(shuō),用戶角色是匿名,ctx.PROVIDER_URL是LOCALHOST
所以,對(duì)于本地測(cè)試(并且JNDI資源沒(méi)有設(shè)置安全屬性)這兩段代碼沒(méi)有區(qū)別,如果要訪問(wèn)遠(yuǎn)程的JNDI資源,就必須用飽含JNDI環(huán)境參數(shù)Hashtable初始化InitialContext。

必要的環(huán)境參數(shù)如:
Context.INITIAL_CONTEXT_FACTORY//連接工廠
Context.PROVIDER_URL//訪問(wèn)連接
Context.SECURITY_PRINCIPAL//安全用戶
Context.SECURITY_CREDENTIALS//用戶密碼 

EJBLocalHome->本地主接口,負(fù)責(zé)控制Bean的整個(gè)生命周期,另外,可以看作是
生成Bean引用的
“工廠“類。  

EJBLocalObject->本地組件接口,定義Bean要向客戶提供的業(yè)務(wù)方法的簽名。

本地接口是一種輕量級(jí)代理,語(yǔ)法更簡(jiǎn)單(直接類型轉(zhuǎn)換,不需要narrow),

開銷更小,速度更快。規(guī)范說(shuō)可以在同一JVM內(nèi)使用,我只在同一個(gè)EJB包內(nèi)用過(guò)。
EJBLocalHome+EJBLocalObject   vs   EJBHome+EJBObject:  
  前一對(duì)不是遠(yuǎn)程調(diào)用,省時(shí)省力   
Home   vs   Object:  
  前者是Factory模式,用來(lái)生成后者;后者是proxy模式,用來(lái)暴露商業(yè)邏輯

InitialContext context = new InitialContext();          
Object ref = context.lookup(JNDIname);          
accHome = (AccountHome)PortableRemoteObject.narrow(ref,AccountHome.class);      
ejbObject = accHome.create();  
  上面即是ejb實(shí)例的一個(gè)很常見(jiàn)的創(chuàng)建過(guò)程  
理解如下:  
   上面的創(chuàng)建過(guò)程是通過(guò)遠(yuǎn)程接口創(chuàng)建ejb實(shí)例的過(guò)程:即先通過(guò)JNDIname找到ejb本地接
口的一個(gè)實(shí)例,然后再通過(guò)本地接口的實(shí)例創(chuàng)建ejb實(shí)例,PortableRemoteObject.narrow(ref,AccountHome.class);
實(shí)際上是一個(gè)強(qiáng)制轉(zhuǎn)換,由于是遠(yuǎn)程強(qiáng)制轉(zhuǎn)換,所以要用PortableRemoteObject.narrow()方法。


// 創(chuàng)建一個(gè)JNDI naming contest
           Context initial = new InitialContext();
          
           // 從JNDI 中以MyConverter 名子來(lái)定位到對(duì)象(在發(fā)布名稱指定了JNDI名稱)
//         Object objref = initial.lookup("java:comp/env/ejb/ConverterEJB");
           Object objref = initial.lookup("MyConverter");
          
           // 通過(guò)objref 得到ConverterHome 本地接口
           ConverterHome home = (ConverterHome)PortableRemoteObject.narrow(
                   objref, ConverterHome.class);
          
           // 再由Home 接口的create 方法來(lái)創(chuàng)建一個(gè)服務(wù)器上的EJB實(shí)例
           Converter currencyConverter = home.create();
          
           // 調(diào)用EJB 中的方法
           代碼省略

 

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
開發(fā)基于JNDI的應(yīng)用程序
JNDI 學(xué)習(xí)
jboss相關(guān)的ejb配置引用完全說(shuō)明.包括jboss-web.xml,ejb-jar.xml等.
Weblogic中EJB調(diào)用方法總結(jié)
BEA WebLogic Server8.1 JMS入門
JNDI配置原理詳解(轉(zhuǎn))- 高山流水 - 新浪BLOG
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服