如何从 EJB 中访问部署参数

per*_*ssf 2 deployment ejb jakarta-ee

在 Java EE 6 Web 应用程序中,我想从EJB.

我知道我可以在web.xml描述符中定义一个上下文参数,并且当我在一个bean 中时,我将能够通过javax.faces.context.ExternalContext#getInitParameterMap()访问它JSF,并通过getServletContext()从一个中访问它Servlet,但事实并非如此,因为我在EJB.

所以,问题是:是否有任何标准(并且可能是干净的)方法来实现这一目标?

per*_*ssf 5

经过进一步研究,我发现了env-entry注释在web.xml. 中的使用:

<env-entry>
    <env-entry-name>myEnvEntry</env-entry-name>
    <env-entry-type>java.lang.String</env-entry-type>
    <env-entry-value>MyEnvEntryValue</env-entry-value>
</env-entry>        
Run Code Online (Sandbox Code Playgroud)

env-entry可以从不同的方式来访问EJB。最简单的是使用@Resource注解(需要CDI):

@Resource(name="myEnvEntry")
private String myEnvEntry;
Run Code Online (Sandbox Code Playgroud)

链接:使用 ENC 为 EJB 3 配置环境条目