将GlassFish 4.1升级到4.1.1后,@ Inject在@FacesConverter中不起作用

时间:2015-10-12 10:26:57

标签: jsf null converter inject mojarra

我遇到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现在仍为nullConverter本身有效(getAsObject / getAsString),但没有@Inject

它仍适用于GlassFish 4.1。

1 个答案:

答案 0 :(得分:3)

您依赖于未指定/未记录的功能。由于遗忘的实验/回滚,Mojarra 2.2在版本2.2.9之前的@Inject@FacesConverter@FacesValidator中无意支持@FacesComponent。预计支持将出现在Mojarra 2.3中,其中需要额外的注释属性,如@FacesConverter(managed=true)中所示。另见a.o. issue 3552

在带有CDI 1.1的JSF 2.2中,最好的办法是通过CDI实用程序类手动获取bean。

BkkBean bkkBean = CDI.current().select(BkkBean.class).get();
// ...

或者,您可以安装OmniFaces,以便在@FacesConverter@FacesValidator

中获得对@Inject(和@EJB)的透明支持

另见: