weblogic ejb_使用Oracle WebLogic对应用程序外部的EJB的引用
weblogic ejb
在之前的文章中,我們對EJB 3.0版及其為您提供的構(gòu)建Java EE應(yīng)用程序的可移植機制進行了概述。 由于Java EE規(guī)范都是關(guān)于可移植性的,因此冒著重復(fù)自我的風(fēng)險,我們經(jīng)常強調(diào)EJB v。3.0規(guī)范上仍然存在最重要的可移植性限制:沒有在外部聲明和鏈接對EJB的引用的可移植方法。你的申請。盡管還有其他標(biāo)準(zhǔn)(例如Web服務(wù))可以讓您松散耦合應(yīng)用程序的組件,但是遠(yuǎn)程EJB由于其簡單性,標(biāo)準(zhǔn)化,許多IDE的良好開發(fā)支持以及良好的性能,仍然是完成此任務(wù)的理想方法。他們提供的性能。
在此博客文章中,我們將概述領(lǐng)先的Java EE應(yīng)用程序服務(wù)器之一Oracle WebLogic提供的機制,以支持對應(yīng)用程序范圍之外的EJB的引用。
Oracle WebLogic中的appededName
符合Java EE的應(yīng)用服務(wù)器提供了其他不可移植的API,工具和機制,用于增強它們實現(xiàn)的標(biāo)準(zhǔn)Java EE功能。 我們在本系列的第一部分中提到的功能之一是mappingName @EJB元素。
盡管EJB 3.0版規(guī)范對此元素一無所知(已被EJB 3.1版規(guī)范引入的lookup元素所取代),但是許多應(yīng)用服務(wù)器供應(yīng)商已經(jīng)以其自己的名稱建議的直觀行為實現(xiàn)了它: 將EJB映射到全局JNDI名稱 。
如果要為了簡化而犧牲可移植性,那么許多應(yīng)用程序服務(wù)器(例如Oracle WebLogic或GlassFish)將允許您使用mapedName元素(或其對應(yīng)的部署描述符元素)的值定義bean的全局JNDI名稱。OracleWebLogic將分配全局JNDI名稱僅 遠(yuǎn)程業(yè)務(wù)接口。 這并不是真正的限制,因為始終可以使用本系列前面部分中描述的API來引用本地業(yè)務(wù)接口。
EJB遠(yuǎn)程業(yè)務(wù)接口的Oracle WebLogic命名約定
有了這樣的機制,將引用鏈接到應(yīng)用程序外部的Bean就很簡單了。 實際上,JDeveloper的EJB向?qū)⑹褂弥庇^的命名方案為您提供默認(rèn)的namedName,該命名方案類似于EJB 3.1規(guī)范引入的新的可移植全局JNDI名稱,如以下屏幕快照所示:
JDeveloper建議的命名方案如下:
mappingName = [應(yīng)用程序名稱]-[模塊名稱]-[bean名稱]
如果采用的話,這種命名方案提供了一種在整個應(yīng)用程序中為每個bean分配唯一名稱的簡便方法。 我知道這樣的名稱有點尷尬,但由于不可移植,因此是與其他名稱一樣好的命名方案。
Oracle WebLogic中遠(yuǎn)程EJB接口的全局JNDI名稱
在Oracle WebLogic Application Server中具有mapedName的EJB的遠(yuǎn)程業(yè)務(wù)接口的全局JNDI名稱將是:
mappingName#[interface-FQN]
使用這種命名方案將使您能夠構(gòu)建松散耦合的Java EE應(yīng)用程序,這些應(yīng)用程序可以重用彼此的EJB。 如果要檢查服務(wù)器JNDI樹并檢查已部署EJB的實際名稱,則可以使用WebLogic的JNDI樹檢查器,可以通過打開WebLogic控制臺啟動該導(dǎo)航器,導(dǎo)航到“ 環(huán)境/服務(wù)器/ [您的服務(wù)器]”頁面,然后使用“ 查看JNDI樹”鏈接。 在下面的屏幕截圖中,您可以檢查全局JNDI條目以獲取定義如下的Bean:
package es.reacts;import ...;@Stateless(name = "EJBByMappedName", mappedName = "Application1-EjbTest0-EJBByMappedName") @Remote public class EJBByMappedNameBean implements RemoteByMappedName {[...] }在屏幕截圖中,您可以欣賞與e s.reacts.RemoteByMappedName業(yè)務(wù)界面相對應(yīng)的條目。
定制EJB遠(yuǎn)程接口的JNDI名稱
Oracle WebLogic為您提供了必要的工具,以自定義和覆蓋其針對EJB遠(yuǎn)程接口的默認(rèn)命名約定。 要分配或覆蓋EJB遠(yuǎn)程接口的全局JNDI名稱,可以使用WebLogic特定的部署描述符。 例如,對于EJB模塊,可以使用JDeveloper快速添加默認(rèn)的weblogic-ejb-jar.xml,或者,如果使用其他IDE(例如NetBeans),則可以創(chuàng)建一個名為weblogic-ejb-jar的新XML文件。模塊的META-INF目錄中的.xml 。 空的weblogic-ejb-jar.xml文件如下所示(從Oracle WebLogic 10.3開始):
<?xml version = '1.0' encoding = 'UTF-8'?> <weblogic-ejb-jar xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.bea.com/ns/weblogic/weblogic-ejb-jar http://www.bea.com/ns/weblogic/weblogic-ejb-jar/1.0/weblogic-ejb-jar.xsd"xmlns="http://www.bea.com/ns/weblogic/weblogic-ejb-jar"> </weblogic-ejb-jar>要為給定的EJB遠(yuǎn)程接口分配或覆蓋全局JNDI名稱,可以使用以下元素:
<?xml version = '1.0' encoding = 'UTF-8'?> <weblogic-ejb-jar xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.bea.com/ns/weblogic/weblogic-ejb-jar http://www.bea.com/ns/weblogic/weblogic-ejb-jar/1.0/weblogic-ejb-jar.xsd"xmlns="http://www.bea.com/ns/weblogic/weblogic-ejb-jar"><weblogic-enterprise-bean><ejb-name>SessionTest0</ejb-name><stateless-session-descriptor><business-interface-jndi-name-map><business-remote>es.reacts.SessionTest0</business-remote><jndi-name>global-jndi-name</jndi-name></business-interface-jndi-name-map></stateless-session-descriptor></weblogic-enterprise-bean> </weblogic-ejb-jar>如果您使用的是JDeveloper,則它為您提供了一個易于編輯GUI的weblogic-ejb-jar.xml文件:
通過JDeveloper GUI,您可以輕松地自定義WebLogic部署描述符并配置WebLogic Application Server的其他不可移植功能,例如EJB集群。
將EJB引用鏈接到全局JNDI名稱
在上一節(jié)中,我們概述了Oracle WebLogic Application Server提供的用于定制執(zhí)行環(huán)境并為EJB的遠(yuǎn)程接口建立全局JNDI名稱的工具。 以同樣的方式,Oracle WebLogic為您提供了其他工具,以使用全局JNDI名稱將EJB引用鏈接到特定的目標(biāo)EJB。
在到目前為止的示例中,我們始終使用EJB 3.0版規(guī)范提供的可移植機制將EJB引用鏈接到目標(biāo)。 如果需要在應(yīng)用程序范圍之外為遠(yuǎn)程EJB建立目標(biāo),則可以使用充當(dāng)EJB客戶端的模塊的特定于WebLogic的部署描述符。 對于到目前為止我們已經(jīng)使用的Java EE模塊,您可以使用JDeveloper添加特定于WebLogic的部署描述符,稱為weblogic.xml。 如果您正在使用其他IDE,那么此文件的框架如下(從Oracle WebLogic 10.3開始):
<?xml version = '1.0' encoding = 'UTF-8'?> <weblogic-web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.bea.com/ns/weblogic/weblogic-web-app http://www.bea.com/ns/weblogic/weblogic-web-app/1.0/weblogic-web-app.xsd"xmlns="http://www.bea.com/ns/weblogic/weblogic-web-app"><ejb-reference-description><ejb-ref-name>ejb/myGlobalRef</ejb-ref-name><jndi-name>global-jndi-name</jndi-name></ejb-reference-description> </weblogic-web-app>該weblogic.xml部署描述符將EJB參考ejb / myGlobalRef與以全局JNDI名稱global-jndi-name存儲的對象鏈接,該名稱是我們在上一章中描述的weblogic-ejb-jar.xml文件中指定的名稱。部分。 將使用@EJB注釋或在標(biāo)準(zhǔn)部署描述符(在本例中為web.xml文件)中照常聲明此引用。
如果您使用的是JDeveloper,則GUI將幫助您構(gòu)建特定于WebLogic的部署描述符。 GUI做得很好,還可以掃描您模塊的EJB引用,并在自定義它們時從列表中進行選擇。
參考: The Gray Blog上的JCG合作伙伴 Gray 引用了Oracle WebLogic在您的應(yīng)用程序外的EJB 。
相關(guān)文章 :- EJB 3.0注入和查找簡介
- 基本的EJB參考,注入和查找
- EJB程序化查找
- EJB 3.1全局JNDI訪問
- GWT EJB3 Maven JBoss 5.1集成教程
- Java泛型快速教程
- JVM如何處理鎖
翻譯自: https://www.javacodegeeks.com/2011/08/references-to-ejbs-outside-your.html
weblogic ejb
總結(jié)
以上是生活随笔為你收集整理的weblogic ejb_使用Oracle WebLogic对应用程序外部的EJB的引用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: jboss4.2.3_JBoss 4.2
- 下一篇: 安全卫士下载电脑版下载(安全卫士下载电脑
