在多个ejb之间共享env-entry

时间:2010-11-19 13:42:05

标签: java dependency-injection glassfish jndi ejb-3.1

我目前正在开发一个包含多个ejb和一个ejb-jar.xml的项目。我想知道如何在各种ejbs之间共享ejb-jar.xml中的env-entry。

示例:

我有以下ejb-jar.xml

<session>
  <ejb-name>MyBeanA</ejb-name>
  <ejb-class>com.enterprise.MyBeanA</ejb-class>

  <env-entry>
    <env-entry-name>myVar</env-entry-name>
    <env-entry-type>java.lang.String</env-entry-type>
    <env-entry-value>some value for my var</env-entry-value>
  </env-entry>
</session>

在MyBeanA中,我使用:

@Ressource
private SessionContext context;

我可以使用以下代码获取myVar的值:

String myVar = (String) context.lookup("java:comp/env/myVar");

有没有办法在MyBeanB这样的另一个ejb中获取myVar的值?

谢谢

1 个答案:

答案 0 :(得分:2)

嗯。应该有汇编描述符的一部分你可以做到这一点,但我现在看到我们必须在规范最终之前错过了。耻辱。将把它带到EG并交叉我的手指,为EJB.next修复它还为时不晚。

与此同时,如果你有一个耳朵,你可以在application.xml中声明它们,它将在java:app /中可用。如果在.war文件中有EJB,则可以在web.xml中执行,EJB可以在java:comp或java:module中查看它们。