Problema EJB 3.0

4 respostas
T

E aí galera do fórum tudo certinhu??

Bah estou fazendo um exemplinho que achei no site da SUn sobre EJB 3.0 mas estou com problema…
A estrutura é a seguinte, tem um Servlet que chama um EJB Stateless, mas quando acontece a chamada dá uma NUllPointerExceptiion…

Servlet:

private StatelessSession sless;

    public void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {

        resp.setContentType("text/html");
        PrintWriter out = resp.getWriter();

        try {

            out.println("<HTML> <HEAD> <TITLE> Servlet Output </TITLE> </HEAD> <BODY BGCOLOR=white>");
            out.println("<CENTER> <FONT size=+1> Servlet2Stateless:: Please enter your name </FONT> </CENTER> <p> ");
            out.println("<form method=\"POST\">");
            out.println("<TABLE>");
            out.println("<tr><td>Name: </td>");
            out.println("<td><input type=\"text\" name=\"name\"> </td>");
            out.println("</tr><tr><td></td>");
            out.println("<td><input type=\"submit\" name=\"sub\"> </td>");
            out.println("</tr>");
            out.println("</TABLE>");
            out.println("</form>");
            String val = req.getParameter("name");

           
            out.println("</BODY> </HTML> ");

        } catch (Exception ex) {
            ex.printStackTrace();
            System.out.println("webclient servlet test failed");
            throw new ServletException(ex);
        }
    }
    
    public void doPost(HttpServletRequest req, HttpServletResponse res)
    	throws IOException, ServletException {
    	System.out.println("*************** entrou no doPOST ********************* ");
    	 PrintWriter out = res.getWriter();
    	 String nome = req.getParameter("name");
    	 
    	 String voltouEJB = sless.sayHello(nome);
    	 System.out.println("*************** voltou do EJB ********************* ");
    	 
    	 out.println("<FONT size=+1 color=red> Greeting from StatelessSessionBean: </FONT> "
                             +  voltouEJB + "<br>");
    	 
    }

}

Interface Local:

@Local
public interface StatelessSession {
	 public String sayHello(String name);
}

Bean Stateless:

@Stateless
public class StatelessSessionBean
    implements StatelessSession {

    public String sayHello(String name) {
    	System.out.println("********** cheghou no ejb *********** ");
        return "**********  Hello EJB3.0 , " + name + "!\n";
    }

}

Quando dou um submit no form do servlet ele chama o doPost.
No doPost quando vai fazer a chamada para o ejb | String voltouEJB = sless.sayHello(nome); | dá esse erro no JBOSS

11:20:02,773 INFO  [STDOUT] *************** entrou no doPOST *********************
11:20:02,773 ERROR [[ServletClient]] Servlet.service() for servlet ServletClient threw exception
java.lang.NullPointerException

Alguma idéia?? Abraço a todos…[/code]

4 Respostas

T

galera seguinte…

Meu codigo ai em cima funciona… Testei no SUN Aplication Server 9 e rolou na boa…

Mas quando coloco no JBOSS dá eero… Já baixei mil versões do JBOSS onde diz ter suporte a ejb 3.0, fiz diversos testes, mas nada da certo…

ALguma dica de como rodar EJB 3.0 no JBOSS??

T

Provavelmente sua variável “sless” está com null pq vc não injetou o EJB ou não fez o lookup do mesmo…

M

Nem provavelmente é, é certo que sless está null porque você não atribui nenhuma instância a ele…

private StatelessSession sless; ainda está nula.

:okok:

T

É provalmente pq se ele tivesse utilizado a anotação @EJB a variável estaria inicializada por Injeção de Dependência (ou seja, sem necessariamente ter ocorrido uma atribuição)… :wink:

Criado 11 de outubro de 2006
Ultima resposta 13 de out. de 2006
Respostas 4
Participantes 3