You might have better luck posting this on the tapestry-users list. (Lots more less busy people there who have probably run into the same thing and have an answer.)
On 4/14/06, Bryan Noll <[EMAIL PROTECTED]> wrote: > > Please let me know if this would be better on the hivemind mailing list > and I'll go that route. > > Bryan Noll wrote: > > Hello... > > > > I am trying to deploy a simple Tapestry app to Geronimo and am having > > some issues. I've pasted the stack trace in here to see. I'm pretty > > sure its a class loading issue with Geronimo, because I got it works > > on JBoss and Tomcat just fine. But, it did get me looking at some of > > the Tapestry code, and I was curious about one thing I saw. > > > > I was getting the following error (see below for the full stack > trace)... > > > > 12:54:14,328 ERROR [[/equinox-tapestry]] Servlet /equinox-tapestry > > threw load() exception > > org.apache.hivemind.ApplicationRuntimeException: Error: Module > > hivemind is duplicated! Definition in > > jar:file:/C:/tools/geronimo-1.2-SNAPSHOT > /config-store/44/war/WEB-INF/lib/hivemind-1.1.jar!/META-INF/hivemodule.xml > > has been ignored in favor of existing definition from > > jar:file:/C:/tools/geronimo-1.2-SNAPSHOT > /config-store/44/war/WEB-INF/lib/hivemind-1.1.jar!/META-INF/hivemodule.xml > . > > > > > > > > So, I went and looked in > > 'RegistryInfrastructureConstructor.addModuleDescriptor' and saw where > > its calling '_errorHandler.error' if the map of _modules already > > contains the current ModuleDescriptor passed into the method as a > > parameter. The thing that caught my attention was that the method > > makes a 'return;' call after calling '_errorHandler.error'. > > When I went and looked at the implementation of '_errorHandler.error', > > I notice that it throws a runtime exception, so the calling method > > never gets a chance to return. I'm curious if this is intentional. > > > > The reason I wonder is because, just hacking around a bit, I modified > > the implementation of the 'error' method so that it simply logs an > > error, but does not throw an exception. I re-built, and > > re-deployed... and the app works just fine now. (I should mention I > > had to skip the tests to build it, because there were failures if I > > didn't.) > > > > Like I said, if its working in JBoss and Tomcat, but not in Geronimo, > > its probably a Geronimo issue. I was just curious to find out if this > > implementation was how the developer intended. Thanks... > > > > > > > > > > > > > > 12:54:14,328 ERROR [[/equinox-tapestry]] Servlet /equinox-tapestry > > threw load() exception > > org.apache.hivemind.ApplicationRuntimeException: Error: Module > > hivemind is duplicated! Definition in > > jar:file:/C:/tools/geronimo-1.2-SNAPSHOT > /config-store/44/war/WEB-INF/lib/hivemind-1.1.jar!/META-INF/hivemodule.xml > > has been ignored in favor of existing definition from > > jar:file:/C:/tools/geronimo-1.2-SNAPSHOT > /config-store/44/war/WEB-INF/lib/hivemind-1.1.jar!/META-INF/hivemodule.xml > . > > > > at > > org.apache.hivemind.impl.StrictErrorHandler.error( > StrictErrorHandler.java:39) > > > > at > > > org.apache.hivemind.impl.RegistryInfrastructureConstructor.addModuleDescriptor > (RegistryInfrastructureConstructor.java:207) > > > > at > > org.apache.hivemind.impl.RegistryBuilder.processModuleDescriptorProvider > (RegistryBuilder.java:168) > > > > at > > org.apache.hivemind.impl.RegistryBuilder.constructRegistry( > RegistryBuilder.java:143) > > > > at > > org.apache.tapestry.ApplicationServlet.constructRegistry( > ApplicationServlet.java:253) > > > > at > > org.apache.tapestry.ApplicationServlet.init(ApplicationServlet.java:194) > > at > > org.apache.catalina.core.StandardWrapper.loadServlet( > StandardWrapper.java:1105) > > > > at > > org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:932) > > at > > org.apache.catalina.core.StandardContext.loadOnStartup( > StandardContext.java:3915) > > > > at > > org.apache.catalina.core.StandardContext.start(StandardContext.java > :4176) > > at > > org.apache.geronimo.tomcat.GeronimoStandardContext.access$101( > GeronimoStandardContext.java:66) > > > > at > > > org.apache.geronimo.tomcat.GeronimoStandardContext$SystemMethodValve.invoke > (GeronimoStandardContext.java:270) > > > > at > > org.apache.geronimo.tomcat.valve.GeronimoBeforeAfterValve.invoke( > GeronimoBeforeAfterValve.java:31) > > > > at > > org.apache.geronimo.tomcat.GeronimoStandardContext.start( > GeronimoStandardContext.java:185) > > > > at > > org.apache.catalina.core.ContainerBase.addChildInternal( > ContainerBase.java:759) > > > > at > > org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739) > > at > > org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524) > > at > > org.apache.geronimo.tomcat.TomcatContainer.addContext( > TomcatContainer.java:287) > > > > at > > > org.apache.geronimo.tomcat.TomcatContainer$$FastClassByCGLIB$$9370b073.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:800) > > > > 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.tomcat.TomcatContainer$$EnhancerByCGLIB$$37e348e5.addContext > (<generated>) > > > > at > > org.apache.geronimo.tomcat.TomcatWebAppContext.doStart( > TomcatWebAppContext.java:416) > > > > at > > org.apache.geronimo.gbean.runtime.GBeanInstance.createInstance( > GBeanInstance.java:936) > > > > at > > org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart( > GBeanInstanceState.java:325) > > > > at > > org.apache.geronimo.gbean.runtime.GBeanInstanceState.start( > GBeanInstanceState.java:110) > > > > at > > org.apache.geronimo.gbean.runtime.GBeanInstanceState.startRecursive( > GBeanInstanceState.java:132) > > > > at > > org.apache.geronimo.gbean.runtime.GBeanInstance.startRecursive( > GBeanInstance.java:537) > > > > at > > org.apache.geronimo.kernel.basic.BasicKernel.startRecursiveGBean( > BasicKernel.java:208) > > > > at > > org.apache.geronimo.kernel.config.Configuration.startRecursiveGBeans( > Configuration.java:315) > > > > at > > > org.apache.geronimo.kernel.config.Configuration$$FastClassByCGLIB$$7f4b4a9b.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:835) > > > > at > > org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java > :178) > > at > > org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java > :173) > > at > > org.apache.geronimo.kernel.config.ConfigurationManagerImpl.start( > ConfigurationManagerImpl.java:229) > > > > at > > > org.apache.geronimo.kernel.config.ConfigurationManagerImpl$$FastClassByCGLIB$$fbed85d2.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:835) > > > > at > > org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java > :178) > > at > > org.apache.geronimo.kernel.KernelGBean.invoke(KernelGBean.java:125) > > at > > > org.apache.geronimo.kernel.KernelGBean$$FastClassByCGLIB$$1cccefc9.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:835) > > > > at > > org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java > :178) > > at > > org.apache.geronimo.kernel.jmx.MBeanServerDelegate.invoke( > MBeanServerDelegate.java:117) > > > > at > > mx4j.remote.rmi.RMIConnectionInvoker.invoke(RMIConnectionInvoker.java > :219) > > > > at sun.reflect.GeneratedMethodAccessor306.invoke(Unknown Source) > > at > > sun.reflect.DelegatingMethodAccessorImpl.invoke( > DelegatingMethodAccessorImpl.java:25) > > > > at java.lang.reflect.Method.invoke(Method.java:324) > > at > > mx4j.remote.rmi.RMIConnectionProxy.invoke(RMIConnectionProxy.java:34) > > at > > mx4j.remote.rmi.RMIConnectionSubjectInvoker.chain( > RMIConnectionSubjectInvoker.java:99) > > > > at > > mx4j.remote.rmi.RMIConnectionSubjectInvoker.access$000( > RMIConnectionSubjectInvoker.java:31) > > > > at > > mx4j.remote.rmi.RMIConnectionSubjectInvoker$1.run( > RMIConnectionSubjectInvoker.java:90) > > > > at java.security.AccessController.doPrivileged(Native Method) > > at javax.security.auth.Subject.doAsPrivileged(Subject.java:500) > > at > > mx4j.remote.MX4JRemoteUtils.subjectInvoke(MX4JRemoteUtils.java:163) > > at > > mx4j.remote.rmi.RMIConnectionSubjectInvoker.subjectInvoke( > RMIConnectionSubjectInvoker.java:86) > > > > at > > mx4j.remote.rmi.RMIConnectionSubjectInvoker.invoke( > RMIConnectionSubjectInvoker.java:80) > > > > at $Proxy6.invoke(Unknown Source) > > at > > javax.management.remote.rmi.RMIConnectionImpl.invoke( > RMIConnectionImpl.java:221) > > > > at sun.reflect.GeneratedMethodAccessor352.invoke(Unknown Source) > > at > > sun.reflect.DelegatingMethodAccessorImpl.invoke( > DelegatingMethodAccessorImpl.java:25) > > > > at java.lang.reflect.Method.invoke(Method.java:324) > > at > > sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:261) > > at sun.rmi.transport.Transport$1.run(Transport.java:148) > > at java.security.AccessController.doPrivileged(Native Method) > > at sun.rmi.transport.Transport.serviceCall(Transport.java:144) > > at > > sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460) > > at > > sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run( > TCPTransport.java:701) > > > > at java.lang.Thread.run(Thread.java:534) > > > > -- > +------------------------------- > | Bryan Noll > | Practice Consultant > | Virtuas Open Source Solutions > | o: 303.260.7300 x713 > | c: 720.201.9659 > +------------------------------- > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > -- Jesse Kuhnert Tacos/Tapestry, team member/developer Open source based consulting work centered around dojo/tapestry/tacos/hivemind. http://opennotion.com