[ http://issues.apache.org/jira/browse/GERONIMO-1220?page=all ] Aaron Mulder resolved GERONIMO-1220: ------------------------------------
Fix Version: 1.0 (was: 1.1) Resolution: Fixed Assign To: Aaron Mulder Appears to be caused by deploying an EJB JAR without a Geronimo deployment plan. Now throws a more meaningful deployment exception. > EJB Deploy Error #2 > ------------------- > > Key: GERONIMO-1220 > URL: http://issues.apache.org/jira/browse/GERONIMO-1220 > Project: Geronimo > Type: Bug > Components: OpenEJB, deployment > Versions: 1.0-M5 > Reporter: Aaron Mulder > Assignee: Aaron Mulder > Fix For: 1.0 > > Need a better error message, if nothing else. > I was trying to deploy a small Enterprise Application (hello world) on > Geronimo 1.0 M5. But I am getting following exception in the server side. > > 16:13:11,771 ERROR [Deployer] Deployment failed due to > java.lang.NullPointerException > at > org.openejb.deployment.OpenEJBModuleBuilder.createModule(OpenEJBModuleBuilder.java:224) > at > org.openejb.deployment.OpenEJBModuleBuilder.createModule(OpenEJBModuleBuilder.java:189) > at > org.openejb.deployment.OpenEJBModuleBuilder$$FastClassByCGLIB$$11bd7b20.invoke(<generated>) > at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53) > at > org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38) > at > org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:118) > at > org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:760) > at > org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:57) > at > org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperationInvoker.java:36) > at > org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(ProxyMethodInterceptor.java:96) > at > org.apache.geronimo.j2ee.deployment.ModuleBuilder$$EnhancerByCGLIB$$7314a515.createModule(<genera > at > org.apache.geronimo.j2ee.deployment.EARConfigBuilder.addModules(EARConfigBuilder.java:518) > at > org.apache.geronimo.j2ee.deployment.EARConfigBuilder.getEarPlan(EARConfigBuilder.java:222) > at > org.apache.geronimo.j2ee.deployment.EARConfigBuilder.getDeploymentPlan(EARConfigBuilder.java:118) > at > org.apache.geronimo.j2ee.deployment.EARConfigBuilder$$FastClassByCGLIB$$38e56ec6.invoke(<generate > at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53) > at > org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38) > at > org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:118) > at > org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:760) > at > org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:57) > at > org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperationInvoker.java:36) > at > org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(ProxyMethodInterceptor.java:96) > at > org.apache.geronimo.deployment.ConfigurationBuilder$$EnhancerByCGLIB$$7f01ad87.getDeploymentPlan( > at org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:140) > at org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:87) > at > org.apache.geronimo.deployment.Deployer$$FastClassByCGLIB$$734a235d.invoke(<generated>) > at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53) > at > org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38) > at > org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:118) > at > org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:795) > at > org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:180) > at > org.apache.geronimo.console.configmanager.DeploymentPortlet.processAction(DeploymentPortlet.java: > at > org.apache.pluto.core.PortletServlet.dispatch(PortletServlet.java:229) > at > org.apache.pluto.core.PortletServlet.doPost(PortletServlet.java:163) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:615) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:688) > at > org.apache.pluto.core.PortletServlet.service(PortletServlet.java:153) > at > org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:427) > at > org.apache.geronimo.jetty.JettyServletHolder.handle(JettyServletHolder.java:99) > at > org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:8 > at > org.mortbay.jetty.servlet.JSR154Filter.doFilter(JSR154Filter.java:171) > at > org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:8 > at > org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:473) > at org.mortbay.jetty.servlet.Dispatcher.dispatch(Dispatcher.java:272) > at org.mortbay.jetty.servlet.Dispatcher.include(Dispatcher.java:161) > at > org.apache.pluto.invoker.impl.PortletInvokerImpl.invoke(PortletInvokerImpl.java:120) > at > org.apache.pluto.invoker.impl.PortletInvokerImpl.action(PortletInvokerImpl.java:68) > at > org.apache.pluto.PortletContainerImpl.processPortletAction(PortletContainerImpl.java:164) > at > org.apache.pluto.portalImpl.core.PortletContainerWrapperImpl.processPortletAction(PortletContaine > at org.apache.pluto.portalImpl.Servlet.doGet(Servlet.java:227) > at org.apache.pluto.portalImpl.Servlet.doPost(Servlet.java:267) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:615) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:688) > at > org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:427) > at > org.apache.geronimo.jetty.JettyServletHolder.handle(JettyServletHolder.java:99) > at > org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:8 > at > org.mortbay.jetty.servlet.JSR154Filter.doFilter(JSR154Filter.java:171) > at > org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:8 > at > org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:473) > at > org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:567) > at org.mortbay.http.HttpContext.handle(HttpContext.java:1565) > at > org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:635) > at org.mortbay.http.HttpContext.handle(HttpContext.java:1517) > at org.mortbay.http.HttpServer.service(HttpServer.java:954) > at org.mortbay.http.HttpConnection.service(HttpConnection.java:816) > at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:983) > at org.mortbay.http.HttpConnection.handle(HttpConnection.java:833) > at > org.mortbay.http.SocketListener.handleConnection(SocketListener.java:244) > at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357) > at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534) > org.apache.geronimo.common.DeploymentException: > java.lang.NullPointerException caused by null > at > org.apache.geronimo.deployment.Deployer.cleanseDeploymentException(Deployer.java:101) > at org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:90) > at > org.apache.geronimo.deployment.Deployer$$FastClassByCGLIB$$734a235d.invoke(<generated>) > at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53) > at > org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38) > at > org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:118) > at > org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:795) > at > org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:180) > at > org.apache.geronimo.console.configmanager.DeploymentPortlet.processAction(DeploymentPortlet.java: > at > org.apache.pluto.core.PortletServlet.dispatch(PortletServlet.java:229) > at > org.apache.pluto.core.PortletServlet.doPost(PortletServlet.java:163) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:615) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:688) > at > org.apache.pluto.core.PortletServlet.service(PortletServlet.java:153) > at > org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:427) > at > org.apache.geronimo.jetty.JettyServletHolder.handle(JettyServletHolder.java:99) > at > org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:8 > at > org.mortbay.jetty.servlet.JSR154Filter.doFilter(JSR154Filter.java:171) > at > org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:8 > at > org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:473) > at org.mortbay.jetty.servlet.Dispatcher.dispatch(Dispatcher.java:272) > at org.mortbay.jetty.servlet.Dispatcher.include(Dispatcher.java:161) > at > org.apache.pluto.invoker.impl.PortletInvokerImpl.invoke(PortletInvokerImpl.java:120) > at > org.apache.pluto.invoker.impl.PortletInvokerImpl.action(PortletInvokerImpl.java:68) > at > org.apache.pluto.PortletContainerImpl.processPortletAction(PortletContainerImpl.java:164) > at > org.apache.pluto.portalImpl.core.PortletContainerWrapperImpl.processPortletAction(PortletContaine > at org.apache.pluto.portalImpl.Servlet.doGet(Servlet.java:227) > at org.apache.pluto.portalImpl.Servlet.doPost(Servlet.java:267) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:615) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:688) > at > org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:427) > at > org.apache.geronimo.jetty.JettyServletHolder.handle(JettyServletHolder.java:99) > at > org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:8 > at > org.mortbay.jetty.servlet.JSR154Filter.doFilter(JSR154Filter.java:171) > at > org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:8 > at > org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:473) > at > org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:567) > at org.mortbay.http.HttpContext.handle(HttpContext.java:1565) > at > org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:635) > at org.mortbay.http.HttpContext.handle(HttpContext.java:1517) > at org.mortbay.http.HttpServer.service(HttpServer.java:954) > at org.mortbay.http.HttpConnection.service(HttpConnection.java:816) > at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:983) > at org.mortbay.http.HttpConnection.handle(HttpConnection.java:833) > at > org.mortbay.http.SocketListener.handleConnection(SocketListener.java:244) > at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357) > at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534) > > I am not sure for the error caused and My JDK version is 1.4.2. I have given > details of my helloworld.ear below. > > This is the helloworld.ear file contents: > EAR -- helloworld-ejb.jar > j2ee-deployer-plan.xml > META-INF/geronimo-application.xml > META-INF/application.xml > > This is the helloworld-ejb.jar file contents: > JAR -- META-INF/openejb-jar.xml > META-INF/ejb-jar.xml > > This is the contents of geronimo-application.xml: > > <application > xmlns="http://geronimo.apache.org/xml/ns/j2ee/application-1.0" > configId="helloworld/j2ee/deployment/test" > parentId="org/apache/geronimo/Server"> > <module> > <ejb>helloworld-ejb.jar</ejb> > <alt-dd>j2ee-deployer-plan.xml</alt-dd> > </module> > </application> > > This is the contents of application.xml: > <?xml version="1.0"?> > <!DOCTYPE application PUBLIC "-//Sun Microsystems, Inc.//DTD J2EE Application > 1.2//EN" "http://java.sun.com/j2ee/dtds/application_1_2.dtd"> > <application> > <display-name>helloworld j2ee application</display-name> > <description> > A sample J2EE application that uses a Helloworld Session Bean > on the server and calls from java/servlet/JSP clients. > </description> > <module> > <ejb>helloworld-ejb.jar</ejb> > </module> > </application> > > This is the contents of openejb-jar.xml: > > <?xml version="1.0"?> > > <openejb-jar > xmlns="http://www.openejb.org/xml/ns/openejb-jar-2.0" > configId="helloworld/test" > parentId="org/apache/geronimo/Server"> > > <cmp-connection-factory>DefaultDatasource</cmp-connection-factory> > > <enterprise-beans> > <session> > <ejb-name>HelloBean</ejb-name> > <jndi-name>ejb/helloworld-ejb/HelloBean</jndi-name> > </session> > </enterprise-beans> > </openejb-jar> > > This is the contents of ejb-jar.xml: > > <?xml version="1.0"?> > <!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans > 1.1//EN" "http://java.sun.com/j2ee/dtds/ejb-jar_1_1.dtd"> > > <ejb-jar> > > <enterprise-beans> > <session> > <description>no description</description> > <display-name>HelloBean</display-name> > <ejb-name>HelloBean</ejb-name> > <home>hello.HelloHome</home> > <remote>hello.Hello</remote> > <local-home>hello.HelloLocalHome</local-home> > <local>hello.HelloLocal</local> > <ejb-class>hello.HelloBean</ejb-class> > <session-type>Stateless</session-type> > <transaction-type>Container</transaction-type> > </session> > </enterprise-beans> > > <assembly-descriptor> > <method-permission> > <unchecked/> > <method> > <ejb-name>HelloBean</ejb-name> > <method-name>*</method-name> > </method> > </method-permission> > <container-transaction> > <description>Transaction attributes for 'HelloBean' > methods</description> > <method> > <ejb-name>HelloBean</ejb-name> > <method-name>*</method-name> > </method> > <trans-attribute>Required</trans-attribute> > </container-transaction> > </assembly-descriptor> > > </ejb-jar> -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira