J'essaie d'injecter un bean sans état EJB dans un servlet, mais le servlet génère une erreur NullPointerExcetion. J'utilise JBOSS pour déployer l'EJB et la servlet. Je suis relativement nouveau dans le monde Java, donc je publie les étapes que j'ai suivies.Échec de l'injection EJB dans le servlet
Interface
package MavenEJB.Bidding`
import javax.ejb.Local;
@Local
public interface PlaceBid {
public String AddBid();
}
Bean
package MavenEJB.Bidding;
import javax.ejb.Stateless;
@Stateless(name="PlaceBid")
public class PlaceBidBean implements PlaceBid {
public PlaceBidBean(){}
/**
* Include logic to add the bid
*/
public String AddBid(){
return "Placed bid using EJB";
}
}
J'ai créé un fichier jar du grain en utilisant maven et je copier le fichier jar dans le répertoire "déploiement" de JBOSS. Je suis capable de voir le bean déployé dans la console JMX.
global JNDI espace de noms dans la console JMX
+- PlaceBid (class: org.jnp.interfaces.NamingContext)
| +- local (proxy: $Proxy63 implements interface MavenEJB.Bidding.PlaceBid,interface org.jboss.ejb3.JBossProxy)
Mon code servlet
public class PlaceBidServlet extends HttpServlet {
@EJB
private PlaceBid placeBid;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<HTML>");
out.println("<HEAD><TITLE>Hello</TITLE></HEAD>");
out.println("<BODY>");
out.println("Output from EJB" +placeBid.AddBid());
//out.println("Output from EJB");
out.println("</BODY></HTML>");
}
....
}
Quand je signale à l'URL de mon servlet, je reçois NullPointerException. Quand je commente le haricot et imprime quelque chose d'autre, il imprime bien. Donc, je suis sûr que le problème est avec l'injection de dépendances EJB dans le servlet. J'ai essayé de nombreuses solutions proposées ailleurs, rien n'a vraiment fonctionné, quelqu'un s'il vous plaît aidez-moi.
Vous pouvez accepter votre propre réponse, afin que les autres utilisateurs sachent que cette question a été répondue. –