簡體   English   中英

在WebSphere 8.5中覆蓋EJB綁定名稱

[英]Overriding EJB binding name in WebSphere 8.5

我正在開發具有與其他服務的許多集成的Java EE應用程序。 所有集成都是通過遠程EJB Bean完成的。 因此,目前我有3個或4個EJB項目作為EAR部署在WebSphere上以作為模擬(因為在開發環境中我無法訪問真實的服務)。 我要做的是將所有這些模擬組合到一個EAR包中,這樣我就可以為模擬提供一個配置頁面(返回值,異常等)。 所以我做了generalMock.ear應用程序。 現在的問題是,EJB綁定名稱與以前不同。

例如,實際的應用程序使用以下綁定名稱:

binding-name="java:global/company-app-calculator-ear/company-app-calculator-ejb/CalculatorSb!com.company.beans.app.calculator.CalculatorSbRemote" 

但是現在綁定名稱看起來像這樣:

binding-name="java:global/general-mock-ear/company-app-calculator-ejb/CalculatorSb!com.company.beans.app.calculator.CalculatorSbRemote" 

有沒有辦法更改全局綁定名稱? 我試圖創建文件“ ibm-ejb-jar-bnd.xml”,並將其添加到EJB模擬的META-INF文件夾中,在該文件夾中我想更改綁定名稱,但無法正常工作。 這是我的“ ibm-ejb-jar-bnd.xml”配置文件的內容:

<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar-bnd xmlns="http://websphere.ibm.com/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-ejb-jar-bnd_1_0.xsd"
             version="1.0">

    <session name="CalculatorSb">
        <interface
                binding-name="java:global/company-app-calculator-ear/company-app-calculator-ejb/CalculatorSb!com.company.beans.app.calculator.CalculatorSbRemote"
                class="com.company.beans.app.calculator.CalculatorSbRemote"/>
    </sescomon>
</ejb-jar-bnd>

我正在使用在Java 1.6 EE上運行的IBM WebSphere 8.5。

java:名稱的格式由Java EE和EJB規范定義,以實現跨提供程序的可移植性。 通常,規范沒有提供覆蓋這些名稱的方法,WebSphere也沒有。

所述<interface>在元件ibm-ejb-jar-bnd.xml文件可能在傳統的WebSphere被用來定義,其中一個EJB在服務器上下文根(不是結合java:位置),在除java:位置。 binding-name值不能以java:開頭。

基本上,你需要改變你的模擬EAR的名稱,或設置應用程序名稱application.xml ,但似乎只解決問題在您的模擬應用程序中的EJB模塊之一。

也許考慮使用EJB引用,而不是在java:global中執行直接查找。 這將允許您的應用程序始終查找EJB引用名稱,而該名稱永遠不會改變。 您只需要根據環境將EJB參考名稱綁定到真實名稱或模擬名稱即可。

您是否嘗試通過添加文件META-INF / ibm-ejb-jar-bnd.xml為EJB使用簡單綁定名稱? 它看起來像這樣:

<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar-bnd
        xmlns="http://websphere.ibm.com/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-ejb-jar-bnd_1_0.xsd"
        version="1.0">

    <session simple-binding-name="ejb/session/myEJBBean" name="myEJBBean">

</ejb-jar-bnd>

現在,客戶端可以通過將ejb引用映射到簡單綁定名稱來連接到上述EJB。

<ejb-ref name="myRef" binding-name="ejb/session/myEJBBean"/>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM