Je suis confronté à un problème lors de l'utilisation de DI et d'intercepteurs dans une application JSF.L'injection d'EJB échoue lorsqu'un intercepteur est présent
J'ai un bean backing qui observe les événements JSF et effectue une recherche de données initiale. Dans la page JSF du haricot est enregistrée comme écouteur d'événement comme suit:
<f:event type="preRenderView" listener="#{myBean.loadData}"/>
Le haricot est assez vers l'avant et ressemble fondamentalement ceci:
@Named
@RequestScoped
public class MyBean {
@EJB
private SomeDao dao;
public void loadData() { ... }
public void performSomeStuff() { ... }
}
Le dao est correctement injecté et tout va bien jusqu'à ici . Maintenant, je voudrais effectuer un chargement paresseux qui est fait dans un intercepteur (le code particulier n'a pas d'importance car le même comportement apparaît lorsque l'intercepteur procède juste sur le contexte d'invocation). Donc, avant d'appeler performSomeStuff() Je voudrais faire en sorte que toutes les données sont chargées:
@Interceptors(MyInterceptor.class)
public void performSomeStuff() { ... }
A ce stade, l'EJB ne soit pas injecté plus longtemps (NPE apparaît ...) - des idées sur la ce?
Réglages:
- GlassFish 3.0.1
- WELD-000900 1.0.1 (SP3)
- Mojarra 2.0.2 (FCS b10)
Merci à l'avance!
Cordialement, Alex
et avez-vous essayé d'injecter un autre composant (non-ejb)? Est-ce que ça marche? – Bozho
essayé d'autres composants et un autre ejb ainsi, résultat jusqu'à présent: tout ce qui est annoté @Inject est injecté, tout ce qui est annoté @EJB ne ... – alexhanschke
pourrait être un bug. signalez-le :) – Bozho