[英]@Inject doesn't work in @FacesConverter after upgrade GlassFish 4.1 to 4.1.1
我有GlassFish 4.1.1和Payara 4.1.153+的問題。
POJO轉換器中的@Inject
點不再起作用。 我錯過了什么? FacesConverter有什么變化嗎?
@FacesConverter("bkkConverter")
public class BkkConverter implements Converter,Serializable
{
@Inject
private BkkBean bkkBean;
...
bkkBean.fetchFromDatabase(...); <- NPE
變量bkkBean
現在保持為null
。 Converter
本身工作( getAsObject
/ getAsString
),但沒有@Inject
?
它仍適用於GlassFish 4.1。
您依賴於未指定/未記錄的功能。 鑽嘴魚科2.2無意支持@Inject
在@FacesConverter
, @FacesValidator
和@FacesComponent
2.2.9版本作為一個被遺忘的實驗/回退的后果之前。 預計支持將出現在Mojarra 2.3中,因此需要額外的注釋屬性,如@FacesConverter(managed=true)
。 另見ao issue 3552 。
在帶有CDI 1.1的JSF 2.2中,最好的辦法是通過CDI
實用程序類手動獲取bean。
BkkBean bkkBean = CDI.current().select(BkkBean.class).get();
// ...
或者,您可以安裝OmniFaces ,以便在@FacesConverter
和@FacesValidator
獲得@Inject
(和@EJB
)的透明支持
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.