EJB 的 JBoss 專用部署描述子 jboss.xml
可能含有 ejb-jar.xml 中所定義的 EJB 本端參照 JNDI 名稱。
這些參照會將 EJB 本端參照對映至其 JNDI 名稱。
為了使這些參照能在 WebSphere Application Server 上正確運作,必須將資訊移至 WebSphere Application Server 連結檔。
此規則會標記在 jboss.xml 檔案、 當自動修復可用時, JBoss XML 會以註解標示已經移轉。
這用於決定是否執行自動修復,並可在 可在移轉結束時使用,以顯示 XML 檔案的移轉程度。
當自動修復可用時,JNDI 名稱將會從 <span.xml 檔案複製到 從 jboss.xml 檔案複製到 WebSphere EJB 綁定檔案。
舉例來說,下列範例顯示定義了 MyBean 參照的 MyBean2。
首先,<ejb-local-ref> 定義在 ejb-jar.xml 檔案中:
<ejb-jar>
<enterprise-beans>
<session>
<display-name>MyBean</display-name>
<ejb-name>MyBean</ejb-name>
<home>com.ibm.ejb.MyBeanHome</home>
<remote>com.ibm.ejb.MyBean</remote>
<ejb-class>com.ibm.ejb.MyBeanBean</ejb-class>
<session-type>無狀態</session-type>
<transaction-type>儲存器</transaction-type>
<jndi-name>ejb.MyBean</ejb-name>
...
</session>
<session>
<display-name>MyBean2</display-name>
<ejb-name>MyBean2</ejb-name>
<home>com.ibm.ejb.MyBean2Home</home>
<remote>com.ibm.ejb.MyBean2</remote>
<ejb-class>com.ibm.ejb.MyBean2Bean</ejb-class>
<session-type>無狀態</session-type>
<transaction-type>儲存器</transaction-type>
<ejb-local-ref>
<description></description>
<ejb-ref-name>ejb/MyBean</ejb-ref-name>
<ejb-ref-type>階段作業</ejb-ref-type>
<local-home>com.ibm.ejb.MyBeanHome</local-home>
<local>com.ibm.ejb.MyBean</local>
</ejb-local-ref>
<jndi-name>ejb.MyBean2</ejb-name>
...
</session>
<enterprise-beans>
<ejb-jar>
接著,將對應的 <ejb-local-ref> JNDI 名稱定義在 jboss.xml 檔中:
<jboss>
<enterprise-beans>
<session>
<ejb-name>MyBean</ejb-name>
<jndi-name>ejb.MyBean</jndi-name>
</session>
<session>
<ejb-name>MyBean2</ejb-name>
<jndi-name>ejb.MyBean2</jndi-name>
<ejb-local-ref>
<ejb-ref-name>ejb/MyBean</ejb-ref-name>
<local-jndi-name>ejb.MyBean</jndi-name>
</ejb-local-ref>
</session>
</enterprise-beans>
</jboss>
自動修正將 ejb.MyBean JNDI 名稱到綁定檔案,並將其與 與 ejb/MyBean 的本地引用 MyBean2.
如果連結檔不存在,則會建立一個連結檔。
在 Java 程式碼內,可以按照下列範例來參照命名環境定義:
javax.naming.Context ctx = new javax.naming.InitialContext();
Object beanRef = ctx.lookup("java:comp/env/ejb/MyBean");