【问题标题】:@Inject doesn't work in @FacesConverter after upgrade GlassFish 4.1 to 4.1.1将 GlassFish 4.1 升级到 4.1.1 后,@Inject 在 @FacesConverter 中不起作用
【发布时间】:2016-01-09 19:08:58
【问题描述】:

我对 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。

【问题讨论】:

    标签: jsf null converter inject mojarra


    【解决方案1】:

    您依赖于未指定/未记录的功能。由于忘记了实验/回滚,Mojarra 2.2 在 2.2.9 版之前无意中在 @FacesConverter@FacesValidator@FacesComponent 中支持了 @Inject。预计该支持将出现在 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)的透明支持

    另见:

    【讨论】:

    猜你喜欢
    • 2021-10-29
    • 1970-01-01
    • 1970-01-01
    • 2014-07-08
    • 1970-01-01
    • 2019-05-14
    • 2016-01-03
    • 2022-12-05
    • 1970-01-01
    相关资源
    最近更新 更多