Date: 2004-08-01T05:48:46 Editor: JacekLaskowski <[EMAIL PROTECTED]> Wiki: Apache Geronimo Wiki Page: PetStore URL: http://wiki.apache.org/geronimo/PetStore
Info on repository and dependencies in openejb-jar.xml Change Log: ------------------------------------------------------------------------------ @@ -56,6 +56,10 @@ configId="petstore-ejb" parentId="petstore"> + <dependency> + <uri>petstore/jars/servicelocator.jar</uri> + </dependency> + <enterprise-beans/> </openejb-jar> }}} @@ -162,6 +166,17 @@ 1. Go to the home directory of Geronimo (i.e. ''/geronimo/target/geronimo-1.0-SNAPSHOT'' assuming that as above it's decided to place Geronimo sources to /geronimo directory). + {{{ +cd /geronimo/target/geronimo-1.0-SNAPSHOT +}}} + + 1. Create ''repository/petstore/jars'' directory underneath the home directory of Geronimo and copy the ''servicelocator.jar'' jar to it. + + {{{ +mkdir repository/petstore/jars +cp /petstore/ear/servicelocator.jar repository/petstore/jars +}}} + 1. Run the deploy tool (i.e. a executable jar) NOTE: It's done on Cygwin mounted directory /petstore so replace the magical {{{cygpath --windows /petstore/petstore.ear}}} with the path to where PetStore is. @@ -170,7 +185,52 @@ java -jar bin/deployer.jar --install --module `cygpath --windows /petstore/petstore.ear` }}} -That's where our story ends up. +That's where our story ends up with the fancy NullPointerException (does anyone volunteer to get rid of it? :)): + + {{{ +$ java -jar bin/deployer.jar --install --module `cygpath --windows /petstore/petstore.ear` +java.lang.NullPointerException + at org.openejb.deployment.OpenEJBModuleBuilder.buildCMPSchema(OpenEJBModuleBuilder.java:613) + at org.openejb.deployment.OpenEJBModuleBuilder.addGBeans(OpenEJBModuleBuilder.java:498) + at org.openejb.deployment.OpenEJBModuleBuilder$$FastClassByCGLIB$$11bd7b20.invoke(<generated>) + at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:87) + at org.apache.geronimo.gbean.jmx.FastMethodInvoker.invoke(FastMethodInvoker.java:38) + at org.apache.geronimo.gbean.jmx.GBeanMBeanOperation.invoke(GBeanMBeanOperation.java:142) + at org.apache.geronimo.gbean.jmx.GBeanMBean.invoke(GBeanMBean.java:744) + at org.apache.geronimo.gbean.jmx.RawInvoker.invoke(RawInvoker.java:89) + at org.apache.geronimo.gbean.jmx.RawOperationInvoker.invoke(RawOperationInvoker.java:34) + at org.apache.geronimo.gbean.jmx.CGLibMethodInterceptor.intercept(CGLibMethodInterceptor.java:111) + at org.apache.geronimo.j2ee.deployment.ModuleBuilder$$EnhancerByCGLIB$$9e45a280.addGBeans(<generated>) + at org.apache.geronimo.j2ee.deployment.EARConfigBuilder.buildConfiguration(EARConfigBuilder.java:407) + at org.apache.geronimo.j2ee.deployment.EARConfigBuilder.buildConfiguration(EARConfigBuilder.java:312) + at org.apache.geronimo.j2ee.deployment.EARConfigBuilder.buildConfiguration(EARConfigBuilder.java:236) + at org.apache.geronimo.j2ee.deployment.EARConfigBuilder$$FastClassByCGLIB$$38e56ec6.invoke(<generated>) + at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:87) + at org.apache.geronimo.gbean.jmx.FastMethodInvoker.invoke(FastMethodInvoker.java:38) + at org.apache.geronimo.gbean.jmx.GBeanMBeanOperation.invoke(GBeanMBeanOperation.java:142) + at org.apache.geronimo.gbean.jmx.GBeanMBean.invoke(GBeanMBean.java:744) + at org.apache.geronimo.gbean.jmx.RawInvoker.invoke(RawInvoker.java:89) + at org.apache.geronimo.gbean.jmx.RawOperationInvoker.invoke(RawOperationInvoker.java:34) + at org.apache.geronimo.gbean.jmx.CGLibMethodInterceptor.intercept(CGLibMethodInterceptor.java:111) + at org.apache.geronimo.deployment.ConfigurationBuilder$$EnhancerByCGLIB$$7a1ca0ae.buildConfiguration(<generated> +) + at org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:198) + at org.apache.geronimo.deployment.Deployer$$FastClassByCGLIB$$734a235d.invoke(<generated>) + at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:87) + at org.apache.geronimo.gbean.jmx.FastMethodInvoker.invoke(FastMethodInvoker.java:38) + at org.apache.geronimo.gbean.jmx.GBeanMBeanOperation.invoke(GBeanMBeanOperation.java:142) + at org.apache.geronimo.gbean.jmx.GBeanMBean.invoke(GBeanMBean.java:765) + at mx4j.server.interceptor.InvokerMBeanServerInterceptor.invoke(InvokerMBeanServerInterceptor.java:218) + at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:121) + at mx4j.server.interceptor.SecurityMBeanServerInterceptor.invoke(SecurityMBeanServerInterceptor.java:86) + at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:121) + at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:121) + at mx4j.server.interceptor.ContextClassLoaderMBeanServerInterceptor.invoke(ContextClassLoaderMBeanServerIntercep +tor.java:205) + at mx4j.server.MX4JMBeanServer.invoke(MX4JMBeanServer.java:1079) + at org.apache.geronimo.kernel.Kernel.invoke(Kernel.java:231) + at org.apache.geronimo.system.main.CommandLine.main(CommandLine.java:93) +}}} 1. Create '''petstore''' directory as a place where deployables are to be found. Open '''etc/boot-service.xml''' and add '''${geronimo.home}/petstore''' after the comma, next to'''${geronimo.home}/deploy''' in '''org.apache.geronimo.kernel.deployment.scanner.DeploymentScanner''' MBean as shown below: {{{ <mbean descriptor="org.apache.geronimo.kernel.deployment.scanner.DeploymentScanner"