簡體   English   中英

在 Glassfish v3 部署中,我可以在哪里放置符合條件的 CDI 候選人?

[英]Where can I place eligible candidates for CDI in a Glassfish v3 deployment?

我在一個包含@Inject X x的 jar (a.jar)中有代碼。

我想通過另一個jar 中的實現來滿足注入(b.jar,是一個有效的 bean 存檔等)。

據我了解,我無法在單獨的 WAR 獨立存檔中部署 a.jar 和 b.jar,因為它們是獨立的 CDI 明智的。 我也許可以將 b.jar 放在 Glassfish 為所有部署提供的 lib 文件夾中(但這是“純 Java 6 EE”,這意味着我不能以與戰爭或耳朵相同的方式部署?)。 我可能能夠在與 a.war 或 a.jar 一起放置在 lib 中的 EAR 中提供 b.jar 但我對此並不熟悉。

我的問題是部署 a.jar 和 b.jar 有哪些選項,以便 Glassfish(當前為 3.0.1,但如果效果更好我會考慮 3.1.1)將正確解決這種依賴關系? 我正在尋找一份詳盡的清單。

(編輯:我更喜歡 b.jar 可以獨立於 a.jar 部署的解決方案)

我認為一個不錯的選擇是將a.jarb.jar放在項目的lib文件夾中。 請告訴您是否認為它有缺點。

我想看看是否可以將b.jar中的相關對象轉換為 EJB,從而有效地將b.jar轉換為 EJB 3“服務”。

然后,在a.jar (以及任何其他需要該服務的代碼)中,我將使用 CDI Producer 方法執行 JNDI 查找,允許我像任何本地資源一樣@Inject EJB。

Alternatively, if you can also turn a.jar into an EJB 3 'service' then EJB's from b.jar can be injected directly by the container (using Java EE @EJB or @Resource injection) into a.jar 's EJBs.

暫無
暫無

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

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