从Weblogic 11g上的EJB获取应用程序名称



有没有办法从Weblogic 11g上的服务器管理对象中找到应用程序的部署名称?例如,我可以从无状态bean本身获得部署的无状态bean的应用程序名称吗?

我发现一些服务器允许对java:app/AppName进行JNDI查找,但它似乎不适用于Weblogic。此外,我知道我可以使用MBean获得所有部署的应用程序(以及更多(的名称,但如果不事先将应用程序名称传递给我的bean,我不知道如何识别我感兴趣的"应用程序",这就无法实现目的。

引用Java EE 8规范,ch.EE.5.15"应用程序名称和模块名称参考";

组件可以使用预定义的JNDI名称java:app/AppName访问当前应用程序的名称。组件可以使用预定义的JNDI名称java:module/ModuleName来访问当前模块的名称。这两个名称都由String对象表示。

以及随后的EE.51.52";Java EE产品提供商的责任":

Java EE产品提供程序负责根据本规范的要求提供正确的应用程序名称和模块名称String对象。

因此,需要符合Java EE的产品来提供您提到的JNDI值。

对我来说(目前在WildFly 15上(这是有效的:

@Resource(name = "java:app/AppName")
private String appName;
@Resource(name = "java:module/ModuleName")
private String moduleName;

最新更新