Injection JSF d'EJB à grains gérés

J'ai un EJB (PersonManager) dans l'Application d'Entreprise modul, qui injecte un autre EJB (Personne):

@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();
    }
}

Je veux utiliser le PersonManager EJB dans une application web JSF. Je le définir dans le 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>

Le problème est que, l'injection de la PersonLocal EJB n'arrive pas. La personne de la propriété est toujours NULL. Qu'ai-je tort?

Mais si j'ai injecter le PersonManager dans un managed bean JSF comme ceci:

@ManagedBean
@RequestScoped
public class Index {
    @EJB
    private PersonManagerLocal personManager;
    ....

IL FONCTIONNE. J'ai besoin de le premier scénario, s'il vous plaît aider moi 😀

source d'informationauteur Forty