Olá humanos!!
Tenho um teste em EJB 3.0 utilizando Sun Java Application Server. O Bean Vaca
package fazenda;
import javax.ejb.Stateless;
@Stateless
public class VacaBean implements VacaLocal {
/** Creates a new instance of VacaBean */
public VacaBean() {
}
public int quantoLeite() {
return (int)(Math.random()*9999);
}
}
Estou testando as facilidades das anotações( que ajuda muito!!). Criei um servlet basicão
@EJB
private fazenda.VacaLocal vacaBean;
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet Pegabeans</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>A vaca tem " + vacaBean.quantoLeite()+ " litros</h1>");
out.println("</body>");
out.println("</html>");
out.close();
}
Essa aplicação roda beleza no server da Sun.
Tenho 3 artefatos com isso
Um Enterprise Application
Um Module EJB
e Um Web Application
Todo esse mangue em um EnterpriseApplication1.ear (em anexo).
Faço o deploy sem problemas no JBoss.
17:24:02,340 INFO [EARDeployer] Init J2EE application: file:/local/servers/jboss-4.0.4.GA/server/default/deploy/EnterpriseApplication1.ear
17:24:02,442 INFO [TomcatDeployer] deploy, ctxPath=/EnterpriseApplication1-war, warUrl=.../tmp/deploy/tmp53710EnterpriseApplication1.ear-contents/EnterpriseApplication1-war-exp.war/
17:24:05,465 INFO [EARDeployer] Started J2EE application: file:/local/servers/jboss-4.0.4.GA/server/default/deploy/EnterpriseApplication1.ear
Sem erros até o momento. Mas quando acesso a aplicação meu servlet(Pegabeans.java) dá um null pointer exceprion(só no JBoss)
ava.lang.NullPointerException
teste.Pegabeans.processRequest(Pegabeans.java:42)
teste.Pegabeans.doPost(Pegabeans.java:65)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
Na linha 42 tenho a chamada do VacaLocal
out.println("<h1>A vaca tem " + vacaBean.quantoLeite()+ " litros</h1>");
Sempre que for utilizar o JBoss tenho que ter uma criação explicita de um bean?
Ou o burraco e mais embaixo?
Obrigado a todos,