5 Replies Latest reply on Sep 3, 2009 9:01 AM by Rafael Ribeiro

    NullPointerException on 5.1.0 when using ejb-local-ref

    Rafael Ribeiro Novice

      Hi all,

      Has anyone ever faced a NPE when deploying an EAR that had an Web Application which in turn had a ejb-local-ref ?

      I am trying to use the ejb-local-ref in order to use Seam injection and avoid having to change jndiPattern accross containers and deployments but after specifying ejb-local-ref in web.xml and trying to deploy I got this exception:

      15:26:20,483 ERROR [AbstractKernelController] Error installing to PostClassLoade
      r: name=vfszip:/C:/workspaces/drools/project/ear/target/ear-1.0.ear/ state=Class
      Loader mode=Manual requiredState=PostClassLoader
      org.jboss.deployers.spi.DeploymentException: java.lang.NullPointerException
       at org.jboss.deployment.MappedReferenceMetaDataResolverDeployer.internal
      Deploy(MappedReferenceMetaDataResolverDeployer.java:174)
       at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(
      AbstractRealDeployer.java:50)
       at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(Deployer
      Wrapper.java:171)
       at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(Deployer
      sImpl.java:1439)
       at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentLa
      st(DeployersImpl.java:1299)
       at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentLa
      st(DeployersImpl.java:1248)
       at org.jboss.deployers.plugins.deployers.DeployersImpl.install(Deployers
      Impl.java:1100)
       at org.jboss.dependency.plugins.AbstractControllerContext.install(Abstra
      ctControllerContext.java:348)
       at org.jboss.dependency.plugins.AbstractController.install(AbstractContr
      oller.java:1631)
       at org.jboss.dependency.plugins.AbstractController.incrementState(Abstra
      ctController.java:934)
       at org.jboss.dependency.plugins.AbstractController.resolveContexts(Abstr
      actController.java:1082)
       at org.jboss.dependency.plugins.AbstractController.resolveContexts(Abstr
      actController.java:984)
       at org.jboss.dependency.plugins.AbstractController.change(AbstractContro
      ller.java:822)
       at org.jboss.dependency.plugins.AbstractController.change(AbstractContro
      ller.java:553)
       at org.jboss.deployers.plugins.deployers.DeployersImpl.process(Deployers
      Impl.java:781)
       at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeploye
      rImpl.java:702)
       at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:830)
       at org.jboss.deployment.MainDeployer.redeploy(MainDeployer.java:604)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
      java:39)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
      sorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:597)
       at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatch
      er.java:157)
       at org.jboss.mx.server.Invocation.dispatch(Invocation.java:96)
       at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
       at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.
      java:264)
       at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668)
       at org.jboss.jmx.adaptor.control.Server.invokeOpByName(Server.java:258)
       at org.jboss.jmx.adaptor.html.HtmlAdaptorServlet$4.run(HtmlAdaptorServle
      t.java:391)
       at org.jboss.jmx.adaptor.html.HtmlAdaptorServlet$4.run(HtmlAdaptorServle
      t.java:388)
       at java.security.AccessController.doPrivileged(Native Method)
       at org.jboss.jmx.adaptor.html.HtmlAdaptorServlet.invokeOpByName(HtmlAdap
      torServlet.java:387)
       at org.jboss.jmx.adaptor.html.HtmlAdaptorServlet.invokeOpByName(HtmlAdap
      torServlet.java:312)
       at org.jboss.jmx.adaptor.html.HtmlAdaptorServlet.processRequest(HtmlAdap
      torServlet.java:106)
       at org.jboss.jmx.adaptor.html.HtmlAdaptorServlet.doGet(HtmlAdaptorServle
      t.java:81)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
      icationFilterChain.java:290)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
      ilterChain.java:206)
       at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFi
      lter.java:96)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
      icationFilterChain.java:235)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
      ilterChain.java:206)
       at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
      alve.java:235)
       at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
      alve.java:191)
       at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(Securit
      yAssociationValve.java:190)
       at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValv
      e.java:92)
       at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.proce
      ss(SecurityContextEstablishmentValve.java:126)
       at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invok
      e(SecurityContextEstablishmentValve.java:70)
       at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
      ava:127)
       at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
      ava:102)
       at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedC
      onnectionValve.java:158)
       at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
      ve.java:109)
       at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
      a:330)
       at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
      :829)
       at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
      ss(Http11Protocol.java:598)
       at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:44
      7)
       at java.lang.Thread.run(Thread.java:619)
      Caused by: java.lang.NullPointerException
       at org.jboss.deployment.MappedReferenceMetaDataResolverDeployer.resolveE
      jbLocalRefs(MappedReferenceMetaDataResolverDeployer.java:906)
       at org.jboss.deployment.MappedReferenceMetaDataResolverDeployer.resolve(
      MappedReferenceMetaDataResolverDeployer.java:743)
       at org.jboss.deployment.MappedReferenceMetaDataResolverDeployer.internal
      Deploy(MappedReferenceMetaDataResolverDeployer.java:170)
       ... 56 more
      15:26:21,483 WARN [MainDeployer] Failed to deploy: file:/C:/workspaces/drools/p
      roject/ear/target/ear-1.0.ear
      


      In my web.xml I have:
       <ejb-local-ref>
       <description>ejb/AbrtBean/local</description>
       <ejb-ref-name>ejb/AbrtBean/local</ejb-ref-name>
       <ejb-link>AbrtBean</ejb-link>
       </ejb-local-ref>
      


      I also specified in components.xml:
      jndi-pattern="java:comp/env/ejb/#{ejbName}/local"
      


      In order to make it container and deployment independent.

      And at last my bean is as follows:
      @Stateless(name="AbrtBean")
      @Name("abrtBean")
      public class AbrtBean implements AbrtLocal, AbrtRemote {
      


      Am I doing anything wrong? I really thought that ejb-link was meant to link an ejb-ref using the EJBName (that's the reason I specified name on Stateless annotation).

      Or is it really a JBoss issue?

      best regards,
      Rafael Ribeiro