[英]@Inject doesn't work in @FacesConverter after upgrade GlassFish 4.1 to 4.1.1
I have a problem with GlassFish 4.1.1 and Payara 4.1.153+. 我有GlassFish 4.1.1和Payara 4.1.153+的问题。
The @Inject
points in the POJO converters no longer work. POJO转换器中的
@Inject
点不再起作用。 What did I miss? 我错过了什么? Has something changed in FacesConverter?
FacesConverter有什么变化吗?
@FacesConverter("bkkConverter")
public class BkkConverter implements Converter,Serializable
{
@Inject
private BkkBean bkkBean;
...
bkkBean.fetchFromDatabase(...); <- NPE
The variable bkkBean
remains null
now. 变量
bkkBean
现在保持为null
。 The Converter
itself works ( getAsObject
/ getAsString
), but no @Inject
? Converter
本身工作( getAsObject
/ getAsString
),但没有@Inject
?
It still works on GlassFish 4.1. 它仍适用于GlassFish 4.1。
You were relying on an unspecified/undocumented feature. 您依赖于未指定/未记录的功能。 Mojarra 2.2 unintentionally supported
@Inject
in @FacesConverter
, @FacesValidator
and @FacesComponent
before version 2.2.9 as consequence of a forgotten experiment/rollback. 钻嘴鱼科2.2无意支持
@Inject
在@FacesConverter
, @FacesValidator
和@FacesComponent
2.2.9版本作为一个被遗忘的实验/回退的后果之前。 The support is expected to come in Mojarra 2.3 whereby an additional annotation attribute is required as in @FacesConverter(managed=true)
. 预计支持将出现在Mojarra 2.3中,因此需要额外的注释属性,如
@FacesConverter(managed=true)
。 See also ao issue 3552 . 另见ao issue 3552 。
In JSF 2.2 with CDI 1.1 your best bet is to manually grab the bean via CDI
utility class. 在带有CDI 1.1的JSF 2.2中,最好的办法是通过
CDI
实用程序类手动获取bean。
BkkBean bkkBean = CDI.current().select(BkkBean.class).get();
// ...
Alternatively, you can install OmniFaces in order to get transparent support for @Inject
(and @EJB
) in @FacesConverter
and @FacesValidator
或者,您可以安装OmniFaces ,以便在
@FacesConverter
和@FacesValidator
获得@Inject
(和@EJB
)的透明支持
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.