2017-09-20 68 views
0

環境 - WAS 7.0和EJB 2.1Websphere 7和EJB 2.1 - 未指定JNDI名稱

我有一個帶有jar jar文件的EAR。它有一些我想要轉換爲本地EJB的遠程EJB(EJB 2.1)。因此,我不得不按照我的理解修改ejb-jar.xml。

我修改EJB-JAR的XML文件如下:

<ejb-jar id="ejb-jar_ID" version="2.1" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd"> 
.... 
... 
<session id="Manager"> 
      <ejb-name>Manager</ejb-name> 
      <home>com.aa.bb.ManagerHome</home> 
      <remote>com.aa.bb.ManagerRemote</remote> 
      <ejb-class>com.aa.bb.Manager</ejb-class> 
      <session-type>Stateless</session-type> 
      <transaction-type>Container</transaction-type> 
      <local-home>com.aa.bb.ManagerLocalHome</local-home> 
      <local>com.aa.bb.ManagerLocal</local> 
      <ejb-local-ref id="EJBLocalRef_1139997836094"> 
       <ejb-ref-name>ejb/ManagerLocalHome</ejb-ref-name> 
       <ejb-ref-type>Session</ejb-ref-type> 
       <local-home>com.aa.bb.ManagerLocalHome</local-home> 
       <local>com.aa.bb.ManagerLocal</local> 
       <ejb-link>Manager</ejb-link> 
      </ejb-local-ref> 

,並新添加標籤爲本地EJB組件。

我的綁定文件如下 -

<ejbbnd:EJBJarBinding xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ejb="ejb.xmi" xmlns:ejbbnd="ejbbnd.xmi" xmi:id="EJBJarBinding_1107442316219"> 
       <ejbJar href="META-INF/ejb-jar.xml#ejb-jar_ID"/> 
       ..... 
       ..... 
      <ejbBindings xmi:id="EnterpriseBeanBinding_1142021363669" jndiName="ejb/ManagerLocalHome"> 
       <enterpriseBean xmi:type="ejb:Session" href="META-INF/ejb-jar.xml#Manager"/> 
       <resRefBindings xmi:id="ResourceRefBinding_1315855161720" jndiName="OraDataSource"> 
        <bindingResourceRef href="META-INF/ejb-jar.xml#ResourceRef_1142023723001"/> 
       </resRefBindings> 
      </ejbBindings> 

在EAR文件我得到以下錯誤的部署 -

com.ibm.websphere.management.application.client.AppDeploymentException: ADMA0014E:驗證失敗。 ADMA0007E:任務將EJB引用映射到企業bean時發生驗證錯誤。
未指定Java命名和目錄接口(JNDI)名稱作爲具有EJB名稱管理器的模塊ZZZZZ中的引用綁定ejb/ManagerLocalHome。

任何想法爲什麼它會抱怨JNDI時,它已被定義? 我錯過了什麼嗎?

回答

0

它看起來像jndiName應該綁定文件中的jndiName =「ejb/Manager」,它開始爲我工作。 不得不運行它rhought rmic,但查找現在工作。