2017-07-25 1 views
0

Je suis en train d'utiliser le CDI dans un servlet, voici un extrait de mon code de servletCDI dans un servlet produit NullPointerException

public class MyServlet extends HTTPServlet{ 

    @Inject 
    @Any 
    Instance<MyProcedure> procedures; 

    public void handleRequest(ServletRequest req, ServletResponse res) throws Exception { 

    if (procedures == null) { 
     System.out.println("procedure list is NULL"); 
    } 
    for (Object o : procedures) { 
     System.out.println("calling procedure " + o.toString()); 
    } 
    } 
} 

MaProcédure est interface h et la guerre de appliation contient deux classes qui implémentent MaProcédure .

je reçois toujours un NullPointerException car la liste des procédures est nul ... J'ai un fichier beans.xml dans mon répertoire WEB-INF.

+0

Quel est le serveur d'application? Par exemple. Tomcat ne prend pas en charge CDI hors de la boîte ... –

+0

aide « Object o » pour itérer semble comme un drapeau rouge. ne vérifie pas les procédures.isUnsatisfait(). Veuillez également inclure votre exception verabatim. – covener

+0

S'il vous plaît montrer votre beans.xml. – Rouliboy

Répondre

0

j'ai découvert quel était le problème. L'interface qui a été mis en œuvre par mes haricots devait être inclus dans l'archive de la guerre sous WEB-INF/lib. Après que j'ai fait cela, tout a commencé à fonctionner comme prévu.