Estoy intentando inyectar un bean sin estado EJB en un servlet, pero el servlet arroja una Excepción de puntero nulo. Estoy usando JBOSS para implementar el EJB y el servlet.La inyección de EJB en el servlet falla
Soy relativamente nuevo en el mundo Java, por lo que estoy publicando los pasos que hemos seguido.
interfaz
package MavenEJB.Bidding`
import javax.ejb.Local;
@Local
public interface PlaceBid {
public String AddBid();
}
frijol
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";
}
}
he creado un archivo jar del grano usando Maven y copié el archivo jar "desplegar" de la JBOSS. Puedo ver el bean desplegado en la consola JMX.
JNDI global de espacio de nombres en la consola JMX
+- PlaceBid (class: org.jnp.interfaces.NamingContext)
| +- local (proxy: $Proxy63 implements interface MavenEJB.Bidding.PlaceBid,interface org.jboss.ejb3.JBossProxy)
Mi código 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>");
}
....
}
Cuando señalo a la URL de mi servlet, consigo NullPointerException. Cuando comento el bean e imprimo algo más, se imprime bien. Así que estoy seguro de que el problema es con la inyección de dependencias EJB en el servlet. Probé muchas soluciones sugeridas en otras partes donde nada funcionó realmente, alguien por favor ayúdeme.
Puede aceptar su propia respuesta, para que otros usuarios sepan que esta pregunta ha sido respondida. –