簡體   English   中英

從 Weblogic 11g 上的 EJB 獲取應用程序名稱

[英]Get application name from EJB on Weblogic 11g

有沒有辦法從 Weblogic 11g 上的服務器管理的 object 中找出應用程序的部署名稱? 例如,我可以從無狀態 bean 本身獲取應用程序名稱與部署的無狀態 bean 嗎?

我發現一些服務器允許 JNDI 查找“java:app/AppName”,但它似乎不適用於 Weblogic。 此外,我知道我可以使用 MBean 獲取所有已部署應用程序(以及更多)的名稱,但我不知道如何識別我感興趣的“應用程序名稱”而不事先將應用程序名稱傳遞給我的 bean ,這違背了目的。

引用 Java EE 8 規范,ch。 EE.5.15“應用程序名稱和模塊名稱參考”

組件可以使用預定義的 JNDI 名稱java:app/AppName訪問當前應用程序的名稱。 組件可以使用預定義的 JNDI 名稱java:module/ModuleName訪問當前模塊的名稱。 這兩個名稱都由String對象表示。

之后,在 EE.5.15.2“Java EE 產品提供商的責任”中:

Java EE Product Provider 負責提供本規范要求的正確應用程序名稱和模塊名稱字符串對象。

所以 Java EE 兼容產品需要提供你提到的 JNDI 值。

對我來說(目前在 WildFly 15 上)這有效:

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM