Hello...
I'm having some issues deploying a simple Tapestry application to
Geronimo. I'm trying to keep it as simple as I can... no geronimo-
web.xml. So, Tapestry is tightly coupled with Hivemind, and
Hivemind is complaining... telling me "Module hivemind is
duplicated!". It would appear to me that this seems like a class
loading issue with Geronimo. Evidently, the hivemind-1.1.jar
library that's bundled in the war is getting deployed twice.... or
something like that.
To give you an brief idea of what's going on here, the Tapestry
bootstrap process is attempting to get all of these hivemodule.xml
files loaded by iterating over a Collection of them. That is
what's happening every time
'RegistryInfrastructureConstructor.addModuleDescriptor' is getting
called. So, right before I get the following stack strace, I see
some debug level logging coming out of the hivemind code saying
'12:54:13,609 DEBUG [RegistryBuilder] Processing module
hivemind'. That is the 2nd time I see that, hence the
problem...it got it loaded the 1st time, and is now puking.
Here's the stacktrace. I'm gonna post to the Tapestry list as
well and see if they've got anything to say about it.
Thanks in advance for any thoughts....
org.apache.hivemind.ApplicationRuntimeException: Error: Module
hivemind is duplicated! Definition in jar:file:/C:/tools/
geronimo-1.2-SNAPSHOT/config-store/42/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/42/war/WEB-INF/lib/hivemind-1.1.jar!/META-
INF/hivemodule.xml.
org.apache.hivemind.impl.StrictErrorHandler.error
(StrictErrorHandler.java:39)
org.apache.hivemind.impl.RegistryInfrastructureConstructor.addModuleD
escriptor(RegistryInfrastructureConstructor.java:202)
org.apache.hivemind.impl.RegistryBuilder.processModuleDescriptorProvi
der(RegistryBuilder.java:168)
org.apache.hivemind.impl.RegistryBuilder.constructRegistry
(RegistryBuilder.java:143)
org.apache.tapestry.ApplicationServlet.constructRegistry
(ApplicationServlet.java:253)
org.apache.tapestry.ApplicationServlet.init
(ApplicationServlet.java:194)
org.apache.catalina.core.StandardWrapper.loadServlet
(StandardWrapper.java:1105)
org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:
932)
org.apache.catalina.core.StandardContext.loadOnStartup
(StandardContext.java:3915)
org.apache.catalina.core.StandardContext.start
(StandardContext.java:4176)
org.apache.geronimo.tomcat.GeronimoStandardContext.access$101
(GeronimoStandardContext.java:66)
org.apache.geronimo.tomcat.GeronimoStandardContext
$SystemMethodValve.invoke(GeronimoStandardContext.java:270)
org.apache.geronimo.tomcat.valve.GeronimoBeforeAfterValve.invoke
(GeronimoBeforeAfterValve.java:31)
org.apache.geronimo.tomcat.GeronimoStandardContext.start
(GeronimoStandardContext.java:185)
org.apache.catalina.core.ContainerBase.addChildInternal
(ContainerBase.java:759)
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:
739)
org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
org.apache.geronimo.tomcat.TomcatContainer.addContext
(TomcatContainer.java:287)
org.apache.geronimo.tomcat.TomcatContainer$$FastClassByCGLIB$
$9370b073.invoke(<generated>)
net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke
(FastMethodInvoker.java:38)
org.apache.geronimo.gbean.runtime.GBeanOperation.invoke
(GBeanOperation.java:118)
org.apache.geronimo.gbean.runtime.GBeanInstance.invoke
(GBeanInstance.java:800)
org.apache.geronimo.gbean.runtime.RawInvoker.invoke
(RawInvoker.java:57)
org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke
(RawOperationInvoker.java:36)
org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept
(ProxyMethodInterceptor.java:96)
org.apache.geronimo.tomcat.TomcatContainer$$EnhancerByCGLIB$
$7af7fb0d.addContext(<generated>)
org.apache.geronimo.tomcat.TomcatWebAppContext.doStart
(TomcatWebAppContext.java:416)
org.apache.geronimo.gbean.runtime.GBeanInstance.createInstance
(GBeanInstance.java:936)
org.apache.geronimo.gbean.runtime.GBeanInstanceState.attemptFullStart
(GBeanInstanceState.java:325)
org.apache.geronimo.gbean.runtime.GBeanInstanceState.start
(GBeanInstanceState.java:110)
org.apache.geronimo.gbean.runtime.GBeanInstanceState.startRecursive
(GBeanInstanceState.java:132)
org.apache.geronimo.gbean.runtime.GBeanInstance.startRecursive
(GBeanInstance.java:537)
org.apache.geronimo.kernel.basic.BasicKernel.startRecursiveGBean
(BasicKernel.java:208)
org.apache.geronimo.kernel.config.Configuration.startRecursiveGBeans(
Configuration.java:315)
org.apache.geronimo.kernel.config.Configuration$$FastClassByCGLIB$
$7f4b4a9b.invoke(<generated>)
net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke
(FastMethodInvoker.java:38)
org.apache.geronimo.gbean.runtime.GBeanOperation.invoke
(GBeanOperation.java:118)
org.apache.geronimo.gbean.runtime.GBeanInstance.invoke
(GBeanInstance.java:835)
org.apache.geronimo.kernel.basic.BasicKernel.invoke
(BasicKernel.java:178)
org.apache.geronimo.kernel.basic.BasicKernel.invoke
(BasicKernel.java:173)
org.apache.geronimo.kernel.config.ConfigurationManagerImpl.start
(ConfigurationManagerImpl.java:229)
org.apache.geronimo.kernel.config.ConfigurationManagerImpl$
$FastClassByCGLIB$$fbed85d2.invoke(<generated>)
net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke
(FastMethodInvoker.java:38)
org.apache.geronimo.gbean.runtime.GBeanOperation.invoke
(GBeanOperation.java:118)
org.apache.geronimo.gbean.runtime.GBeanInstance.invoke
(GBeanInstance.java:835)
org.apache.geronimo.kernel.basic.BasicKernel.invoke
(BasicKernel.java:178)
org.apache.geronimo.kernel.KernelGBean.invoke(KernelGBean.java:125)
org.apache.geronimo.kernel.KernelGBean$$FastClassByCGLIB$
$1cccefc9.invoke(<generated>)
net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke
(FastMethodInvoker.java:38)
org.apache.geronimo.gbean.runtime.GBeanOperation.invoke
(GBeanOperation.java:118)
org.apache.geronimo.gbean.runtime.GBeanInstance.invoke
(GBeanInstance.java:835)
org.apache.geronimo.kernel.basic.BasicKernel.invoke
(BasicKernel.java:178)
org.apache.geronimo.kernel.jmx.MBeanServerDelegate.invoke
(MBeanServerDelegate.java:117)
mx4j.remote.rmi.RMIConnectionInvoker.invoke
(RMIConnectionInvoker.java:219)
sun.reflect.GeneratedMethodAccessor223.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:324)
mx4j.remote.rmi.RMIConnectionProxy.invoke(RMIConnectionProxy.java:34)
mx4j.remote.rmi.RMIConnectionSubjectInvoker.chain
(RMIConnectionSubjectInvoker.java:99)
mx4j.remote.rmi.RMIConnectionSubjectInvoker.access$000
(RMIConnectionSubjectInvoker.java:31)
mx4j.remote.rmi.RMIConnectionSubjectInvoker$1.run
(RMIConnectionSubjectInvoker.java:90)
java.security.AccessController.doPrivileged(Native Method)
javax.security.auth.Subject.doAsPrivileged(Subject.java:500)
mx4j.remote.MX4JRemoteUtils.subjectInvoke(MX4JRemoteUtils.java:163)
mx4j.remote.rmi.RMIConnectionSubjectInvoker.subjectInvoke
(RMIConnectionSubjectInvoker.java:86)
mx4j.remote.rmi.RMIConnectionSubjectInvoker.invoke
(RMIConnectionSubjectInvoker.java:80)
$Proxy4.invoke(Unknown Source)
javax.management.remote.rmi.RMIConnectionImpl.invoke
(RMIConnectionImpl.java:221)
sun.reflect.GeneratedMethodAccessor223.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:324)
sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:261)
sun.rmi.transport.Transport$1.run(Transport.java:148)
java.security.AccessController.doPrivileged(Native Method)
sun.rmi.transport.Transport.serviceCall(Transport.java:144)
sun.rmi.transport.tcp.TCPTransport.handleMessages
(TCPTransport.java:460)
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run
(TCPTransport.java:701)
java.lang.Thread.run(Thread.java:534)