Sun AS para JBoss - Erro na aplicação?

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,

Humm… O JBoss já suporta EJB 3.0?

Em jboss.com:

JBoss Application Server includes support for Enterprise Java Beans (EJB) 3.0 which is designed to dramatically simplify the enterprise Java programming model. Download JBoss AS with EJB 3.0 today. (EJB3 is an optional package available when using the installer)

Mesmo utilizando a opção do EJB 3.0 do installer(o jar) persiste o problema.
Eu acho que, senão tivesse suporte a ejb 3 o deploy já esboçaria um erro do tipo " module fora da especificação" neste caso não há problema no deploy veja.

08:40:01,166 INFO  [TomcatDeployer] deploy, ctxPath=/jmx-console, warUrl=.../deploy/jmx-console.war/
08:40:02,282 INFO  [EARDeployer] Init J2EE application: file:/opt/jboss-4.0.4.GA/server/default/deploy/EnterpriseApplication1.ear
08:40:04,201 INFO  [Ejb3Deployment] EJB3 deployment time took: 323
08:40:04,438 INFO  [JmxKernelAbstraction] installing MBean: jboss.j2ee:ear=EnterpriseApplication1.ear,jar=EnterpriseApplication1-ejb.jar,name=VacaBean,service=EJB3 with dependencies:
08:40:05,036 INFO  [EJBContainer] STARTED EJB: fazenda.VacaBean ejbName: VacaBean
08:40:05,209 INFO  [EJB3Deployer] Deployed: file:/opt/jboss-4.0.4.GA/server/default/tmp/deploy/tmp14275EnterpriseApplication1.ear-contents/EnterpriseApplication1-ejb.jar
08:40:05,674 INFO  [TomcatDeployer] deploy, ctxPath=/EnterpriseApplication1-war, warUrl=.../tmp/deploy/tmp14275EnterpriseApplication1.ear-contents/EnterpriseApplication1-war-exp.war/
08:40:08,075 INFO  [EARDeployer] Started J2EE application: file:/opt/jboss-4.0.4.GA/server/default/deploy/EnterpriseApplication1.ear
08:40:08,264 INFO  [Http11BaseProtocol] Starting Coyote HTTP/1.1 on http-0.0.0.0-8080
08:40:08,730 INFO  [ChannelSocket] JK: ajp13 listening on /0.0.0.0:8009
08:40:08,848 INFO  [JkMain] Jk running ID=0 time=0/165  config=null
08:40:08,964 INFO  [Server] JBoss (MX MicroKernel) [4.0.4.GA (build: CVSTag=JBoss_4_0_4_GA date=200605151000)] Started in 55s:393ms
08:40:48,909 ERROR [[Pegabeans]] Servlet.service() for servlet Pegabeans threw exception

A última linha só dá erro quando chama o servlet.

o problema é que ele ja suporta EJB3, mas ainda não suporta a nova especificação de Servlets que tem suporte a injeção de dependencias nos servlets.
ele usa o tomcat como servlet container, e isto só vai ser implementado no tomcat 6 que ainda não ta pronto :smiley:

Pode ser.