que tiene un EJB (PersonManager) en el modulo de aplicaciones de empresa, que inyecta otra EJB (persona):JSF-bean gestionado EJB inyección
@Stateful
public class PersonManager implements PersonManagerLocal {
@EJB
private PersonLocal person;
@Override
public void setPersonName(String name) {
person.setName(name);
}
@Override
public String getPersonName() {
return person.getName();
}
}
Quiero usar el PersonManager EJB en una aplicación web JSF. La defino en el faces-config.xml:
<managed-bean>
<managed-bean-name>personManager</managed-bean-name>
<managed-bean-class>ejb.PersonManager</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
El problema es que, la inyección del PersonLocal EJB no sucede. La propiedad de la persona siempre es NULL. ¿Qué hice mal?
Pero si me inyecto la PersonManager en un grano de JSF logrado de esta manera:
@ManagedBean
@RequestScoped
public class Index {
@EJB
private PersonManagerLocal personManager;
....
funciona. Necesito la primera situación, ayúdeme por favor :-D
Por qué no usas la anotación @EJB en lugar de declarar manualmente en faces-config.xml ?? Es como tratar de volver al pasado cuando la anotación no fue inventada: P –
Tienes razón :-D es simplemente teórico, me gustaría saber la respuesta. – Forty
@Forty Entonces, ¿por qué no funciona? La respuesta no está clara para mí. –