Session Bean no NetBeans

4 respostas
W

Estou tentando fazer um stateless session bean no Netbeans 6.7.1 usando o Glassfish v2.1, e sempre está gerando esse erro:

Caused by: java.lang.RuntimeException: Cannot resolve reference Unresolved Ejb-Ref TestBean@jndi: @[email removido]@Session@null

Este é o código:
package business;

import javax.ejb.Local;

@Local
public interface TestBeanLocal {
    String getMessage();
}
package business;

import javax.ejb.Stateless;

@Stateless
public class TestBeanBean implements TestBeanLocal {

    public String getMessage() {
        return "Message in a Bottle!";
    }
}
package presentation;

import business.TestBeanLocal;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.ejb.EJB;

public class TestServlet extends HttpServlet {
    @EJB(name="TestBean")
    TestBeanLocal localBean;
   
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        String message = localBean.getMessage();
        response.getWriter().println(message);
    } 

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    } 
}
Se alguém descobrir o que está errado por favor me diga, no eclipse fiz esse mesmo código e deu tudo certo

4 Respostas

W

ninguém ? =S

G

O que esta acontecendo é que o Dependency Injection no comando

@EJB(name="TestBean")  
     TestBeanLocal localBean;

não esta funcionando. O que deve estar acontecendo é que o seu Bean esta com outro nome no JNDI
quando vc faz o deploy pelo netbeans.

[]s

W

Eu tirei name do @EJB e mesmo assim não funciona, como faço pra saber o jndi correto desse bean ?

G

Se o seu jboss estiver no eclipse ele escreve no console os ejbs e quais nomes estão associados no jndi.
Se não estiver tem que olhar o log do jboss.

[]s

Criado 15 de outubro de 2009
Ultima resposta 20 de out. de 2009
Respostas 4
Participantes 2