2010-11-19 98 views
3

我目前正在开发一个包含多个ejb和一个ejb-jar.xml的项目。我想知道如何在各种ejbs之间共享来自ejb-jar.xml的env-entry。在多个ejb之间共享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"); 

有没有办法让myVar在MyBeanB等其他ejb中获得价值?

谢谢

+0

我最终选择将共享数据放在一些属性文件中,以便它们可以从每个ejb访问。 – 2011-03-22 18:13:22

回答

2

嗯。本来应该有一部分的程序集描述符可以做到这一点,但是现在我们看到,在规格最终确定之前我们一定错过了。耻辱。将它带入EG并且交叉我的手指来修复EJB.next还不算晚。

与此同时,如果您有耳朵,您可以在application.xml中声明它们,它将在java:app /中可用。如果您的.war文件中有EJB,您可以在web.xml中执行此操作,并且EJB可以在java:comp或java:模块中查看它们。

+0

感谢您的回答,您认为在可用之前它会很久吗? – 2010-12-05 15:35:26