Precisei implementar um converter JSF para minha classe de Clientes. E ao injetar a classe de serviços (@Inject ClienteService clienteService), estou recebendo NullPointerException. Alguém já passou por isso?
@InjectClienteServiceclienteService;@OverridepublicObjectgetAsObject(FacesContextfc,UIComponentuic,Stringstring){if(string==null||string.length()==0||string.startsWith("-")){returnnull;}try{Integerid=Integer.parseInt(string);returnclienteService.findById(id);// NPE aqui}catch(NumberFormatException|ConverterExceptione){FacesUtils.error("Erro no converter: "+e.getMessage());thrownewConverterException("Erro de conversão do JSF - Valor "+string+" não conversível",e);}}
@leorbarbosa seguinte o converter não tem nenhum contexto, então não ocorre a injeção de dependência e por isto está null. Converter’s não tem responsabilidade de carregar uma entidade/objeto e sim apenas Converter.
A JavaServer Faces converter class converts strings to objects and objects to strings as required. Several standard converters are provided by JavaServer Faces for this purpose… http://docs.oracle.com/javaee/6/tutorial/doc/bnaus.html
Ou seja ela irá converter um objeto em string e uma string em objeto atuando entre a pagina JSF e seu ManagedBean. Uma dica particular, cria um converter geral pras entidades.
leorbarbosa
Valeu demais. E como seria um converter geral para entidades?
E está é a classe abstrata que extende nas minhas entidades, assim generalizo p/ todas classes que extender a classe BaseEntity pode usar este converter. Ignora a interface você não irá precisar.