Сервер: Payara 5.183.
Когда используется конвертер, возникает исключение NullPointerException, потому что внедренный EJB равен нулю (System.out.println печатает «ноль»).
Работает(Внедрение не ноль), если я использую обходной путь, используемый до JSF 2.3: замена @FacesConverter на @ Name.
Конвертер:
@FacesConverter(value = "compteConverter", managed = true)
public class CompteConverter implements Converter<CompteBancaire> {
@EJB
private GestionnaireCompte gestionnaireCompte;
@Override
public CompteBancaire getAsObject(FacesContext context, UIComponent component, String id) {
if (id == null || id.isEmpty()) {
return null;
}
try {
System.out.println("*****EJB gestionnaireCompte=" + gestionnaireCompte);
return gestionnaireCompte.getCompte(Long.parseLong(id));
} catch (NumberFormatException e) {
throw new ConverterException(new FacesMessage("Id de compte invalide"), e);
}
}
@Override
public String getAsString(FacesContext arg0, UIComponent arg1, CompteBancaire compte) { ... }
Использование этого конвертера:
<ui:define name="metadata">
<f:metadata>
<f:viewParam name="id" value="#{operations.compte}"
converter="compteConverter"/>
Это ошибка Мохарры / Паяры (managed = true
не работает) или вы можете помочь мне найти мою ошибку?