2012-04-27 63 views
0

一個資源引用這是他們聲明的resource-ref ejb-jar.xml中:中聲明EJB

<enterprise-beans> 
<session> 
<ejb-name>ResourceBean</ejb-name> 
<resource-ref> 
<res-ref-name>jdbc/employee</res-ref-name> 
<res-type>javax.sql.DataSource</res-type> 
</resource-ref> 
</session> 
</enterprise-beans> 

在此鏈接:http://javahowto.blogspot.ca/2006/06/5-ways-to-get-resources-in-ejb-3.html 現在,如果我有需要使用另一個會話bean相同的資源ref,我必須在第二個EJB中再次聲明它嗎?還是有解決方法?

+0

請注意,您顯示的XML語法現在更多地用於覆蓋註釋註釋,而不是聲明注入的主要來源。 – 2012-04-27 20:03:31

回答

3

在EE 6之前(在WebSphere Application Server 8.0中提供)之前,無法在各個EJB之間共享resource-ref。您必須在每個EJB中重新聲明resource-ref

在EE 6,可以聲明在resource-ref與一個名稱,如java:module/env/jdbc/employee,和這將是對模塊中的所有EJB可見(和java:app是向所有模塊可見,並且java:global是可見的所有應用程序) 。

+0

你說**要用'java:module/env/jdbc/employee' **這樣的名字聲明resource-ref。我假設你正在討論在'ejb-jar.xml'中聲明它。正確?如果是,那麼使用哪個版本的xsd?如果不是那麼聲明這個文件?謝謝 – ChumboChappati 2015-12-15 14:39:50

+0

@ChumboChappati是的,在ejb-jar.xml或註釋中;對於java:app或java:global,您也可以使用application.xml。如果是ejb-jar.xml,那麼使用哪個版本的XSD並不重要,因爲它只是一個字符串名稱。對於application.xml,您需要applicationaition_6.xsd。 – 2015-12-15 18:52:37