Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/07/2010, 19:46
Avatar de TolaWare
TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 18 años, 10 meses
Puntos: 24
Inyectar un CDI Bean en un ManagedBean usando JSF2

Hola gente.

Estoy desarrollando un sistema web usando JSF 2 en la capa de presentación y EJB 3.1 Lite en la capa de negocio.

Tengo un bean (que no es un EJB) en la capa de negocio y quiero inyectarlo en un ManagedBean de la interfaz gráfica.

Este es el bean de la capa de negocio:
Código:
@Singleton
@Named
public class SysSettings {

    // metodos y propiedades

    public void fooMethod() {
        // implementacion de fooMethod
    }

}
Este es el ManagedBean de la capa de presentación.
Código:
@ManagedBean
@ApplicationScoped
public class MyManagedBean {

    @Inject
    private SysSettings sysSettings;

    public void beanMethod() {
        sysSettings.fooMethod();
    }

}
Como se puede ver, desde MyManagedBean trato de acceder e invocar al método fooMethod de la clase SysSettings, que está inyectada en esta clase.

Actualmente, el problema que tengo es que la inyección no funciona, y cuando el método beanMethod se ejecuta, el contenedor larga un NullPointerException ya que la propiedad sysSettings es null.

Mi pregunta es ¿Es posible inyectar un CDI Bean en un ManagedBean de JSF2?
Si la respuesta es SI, entonces ¿Como puedo hacer tal inyección?

Muchas gracias por su tiempo.
__________________
http://blog.tolaware.com.ar -> Blog de Java, Ruby y Linux