??????? 繼續(xù)昨天發(fā)的隨筆,雖然解決了CMP的部署發(fā)布問題,在WebSphere中成功發(fā)布。但以我的經(jīng)驗(yàn)寫出的代碼卻不能調(diào)用它!弄了一下午,有點(diǎn)郁悶!向大家說說!
?????? 先向大家敘述一下我的CMP的情況:
?????? 我使用的CMP使用的本地接口,沒有建立遠(yuǎn)程接口。我想運(yùn)用facade模式,也就是在一個(gè)SessionBean中調(diào)用實(shí)體Bean,所以我使用本地接口。我的本意是這樣可以減少頻繁的遠(yuǎn)程調(diào)用而帶來的資源占用。
???????然而我在調(diào)試時(shí)wsad報(bào)錯(cuò),從報(bào)錯(cuò)中顯示找不到這個(gè)CMP,后來我設(shè)了斷點(diǎn)在下面這個(gè)語句:
ctx.lookup("ejb/com/diablo/ProgrammerLocalHome);這個(gè)語句是在一個(gè)try語句中,發(fā)現(xiàn)程序運(yùn)行這句后就捕捉到異常,直接跳到catch中了。所以確定是JNDI出問題了啊!
?????? 以我對本地接口的認(rèn)識,bean之間調(diào)用屬于內(nèi)部調(diào)用,利用本地接口可以減少資源的占用。然而卻不能如我所愿啊!如果把這個(gè)CMP設(shè)成遠(yuǎn)程接口,就沒有任何問題。
?????? 想問問各位,這個(gè)CMP的本地接口到底應(yīng)該怎么調(diào)用呢?還是我哪里認(rèn)識有錯(cuò)誤呢???
?????? 歡迎指點(diǎn)!
評論
經(jīng)多次調(diào)試,偶得:
一、建立的Entity bean具有本地接口,然而在Session bean中直接通過其本地的JNDI調(diào)用卻不能成功。
二、在Session bean中創(chuàng)建一個(gè)Entity bean的本地引用,比如本地引用名為:ejb/Programmer,然后在sesion bean 中l(wèi)ookup是直接使用還是不行。
三、在二的基礎(chǔ)上,在lookup中使用以下字符串:"java:comp/env/ejb/Programmer",則能夠成功調(diào)用。
從以上看出,在EJB容器內(nèi)內(nèi)部調(diào)用EJB需建立本地引用,并采用第三種方式。
一、建立的Entity bean具有本地接口,然而在Session bean中直接通過其本地的JNDI調(diào)用卻不能成功。
二、在Session bean中創(chuàng)建一個(gè)Entity bean的本地引用,比如本地引用名為:ejb/Programmer,然后在sesion bean 中l(wèi)ookup是直接使用還是不行。
三、在二的基礎(chǔ)上,在lookup中使用以下字符串:"java:comp/env/ejb/Programmer",則能夠成功調(diào)用。
從以上看出,在EJB容器內(nèi)內(nèi)部調(diào)用EJB需建立本地引用,并采用第三種方式。
# re: CMP的本地方法調(diào)用 回復(fù) 更多評論
2006-11-06 22:09 by 11111111111111java:comp/env/是專屬于EJB的上下文結(jié)點(diǎn)
只有注冊用戶登錄后才能發(fā)表評論。 | ||
![]() |
||
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
|
||
相關(guān)文章:
|
||