Olá pessoal,
Estou com uma dúvida em relação aos EJB’s. A forma mais correta de se obter um EJB é por meio de injeção de dependências ou JNDI? ou tanto faz?
Fiz esse Servlet que acessa um EJB:
public class ServletSaudacao extends HttpServlet {
@EJB
private SaudacaoRemote saudacao;
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
String result = saudacao.saudacao(request.getParameter("nome"));
request.setAttribute("result", result);
request.getRequestDispatcher("index.jsp").forward(request, response);
/* try {
InitialContext ic = new InitialContext();
} catch (NamingException ex) {
ex.printStackTrace();
}*/
}
// <editor-fold defaultstate="collapsed" desc="Métodos HttpServlet. Clique no sinal de + à esquerda para editar o código.">
/**
* Handles the HTTP <code>GET</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
Essa forma de acesso ao EJB está correta? Estou perguntando isso pq vi um exemplo utilizando um JSP que acessa por meio do objeto InitialContext e também se for o caso de colocar EJB’s em um ambiente de execução real.