l servicio @@ Autowired dentro de una clase @ManagedBean @Component es nulo durante la solicitud JSF [duplicado]
Esta pregunta ya tiene una respuesta aquí:
ntegración @Spring JSF: ¿cómo inyectar un componente / servicio Spring en el bean administrado JSF? 3 respuestasIntenté Union Spring 3 (MVC) con JSF 2. Tengo algo de experiencia en Spring y JSF, pero nunca intenté unirme a ellos antes. Al final tengo 2 archivos
@ManagedBean(name = "userBean")
@Scope
@Component
public class someBean {
@Autowired
private TestService testService;
public void printString() {
System.out.println(testService.getString());
}
}
@ManagedBean(name = "studentBean")
@Scope
@Component
public class StudentBean {
@Autowired
private TestService testService;
public void printString() {
System.out.println(testService.getString());
}
}
Para estos archivos tengo la configuración correcta para spring, jsf y web.xml. Y tengo la página .xhtml donde comienzo printString () para 'someBean' y para 'StudentBean'. Tengo el NPE en el primer caso y 'algunas cadenas' en la consola en el segundo caso. La razón es simple: diferentes nombres de bean en el contexto Spring y JSF. todos los problemas terminaron después de
@Component => @Component("userBean")
public class someBean {
En la depuración vi que
private TestService testService;
@Autowired
public void setTestService(TestService testservice) {
this.testService = testService;
}
Cuando JSF bean está creando conjuntos de testService no nulos, pero es nulo durante el ciclo de vida de JSF cuando
public void pringString() {
testService.blah();
}
testService es nulo. Es lo que no puedo entender. ¿Alguien conoce profundamente Spring y JSF para describir esta situación en detalle?