[RESOLVIDO] Converter com @EJB

Pessoal,
Alguém poderia me dar uma luz?
Por que o meu atributo @EJB no código abaixo está como nulo?

@SessionScoped
@FacesConverter(value = "paisConverter") 
public class PaisConverter implements Converter{

    @EJB
    private PaisService paisService;
    
    @Override
    public Object getAsObject(FacesContext context, UIComponent component, String value) {
        try { 
            if(value != null){ 
                System.out.println("service "+paisService); // Por que meu paisService é nulo se é um EJB?
                Pais pais = paisService.get(new Integer(value));
                System.out.println("id   "+pais.getId()); 
                System.out.println("nome "+pais.getNome());
                return pais; 
            }
        } catch (Exception ex) { 
            Logger.getLogger(PaisConverter.class.getName()).log(Level.SEVERE, null, ex);
        }
        return null;
    }

    @Override
    public String getAsString(FacesContext context, UIComponent component, Object value) {
        if(value != null){               
             return String.valueOf(((Pais)value).getId());  
        }  
        return null;
    }    
}

Converter atualmente não aceita injeção.

O que você pode fazer é:

  1. Anotar o converter com @ManagedBean (ou @Named)
  2. Não utilizar injection mas lookup
  3. Esperar a nova versão do JSF que sairá sei lá quando. :lol: :lol: :lol:

Hebert Coelho,

Obrigado por responder!
Vou testar e respondo aqui.

Existe uma outra maineira de eu usar o <p:SelectOneMenu> sem converter?

[quote=giovani_sc]Hebert Coelho,

Obrigado por responder!
Vou testar e respondo aqui.

Existe uma outra maineira de eu usar o <p:SelectOneMenu> sem converter?
[/quote]Ao invés de passar o objeto, passe o id dele. itemValue="#{meuMB.carro.id}" e no seu MB espere o ID e não o objeto.

Hebert Coelho

humm… entendi.
Obrigado pela dica!

Giovani