Hi Bryan,
It seems that you have increased the severity of the associated JIRA;
so, I am currently having a look to this problem.
Meanwhile, you should be able to run your Tapestry app with Jetty as the
servlet engine. Basically, I have the "wrap" Tapestry example running
fine with Jetty and failing with Tomcat with the reported exception.
Thanks,
Gianny
Bryan Noll wrote:
> Sorry it has taken me so long to respond. Down for a couple days with
> the flu.
>
> org.apache.tapestry.ApplicationServlet.init is only getting called once
>
> public void init(ServletConfig config) throws ServletException
> {
> String name = config.getServletName();
>
> LOG.info("##### Entered ApplicationServlet.init method. Servlet
> name = '" + name + "'; " + new java.util.Date());
> ...
>
>
> produces one log statement...
> 09:04:16,866 INFO [ApplicationServlet] ##### Entered
> ApplicationServlet.init method. Servlet name = 'tapestry'; Wed Apr 19
> 09:04:16 MDT 2006
>
> David Jencks wrote:
>
>> Can you put a breakpoint at
>>
>>> org.apache.tapestry.ApplicationServlet.init(ApplicationServlet.java:194)
>>>
>>
>>
>> and see if that is getting called twice and if so if it is the same
>> servlet instance?
>>
>> thanks
>> david jencks
>>
>>
>> On Apr 16, 2006, at 8:10 PM, Bryan Noll wrote:
>>
>>> Folks on this dev list seem pretty busy working through jira issues
>>> and the like for the release. I'm moving this over to the user
>>> list... maybe someone there has been there, done that with this
>>> Tapestry/Geronimo integration.
>>>
>>> Thanks...
>>>
>>> Bryan Noll wrote:
>>>
>>>> 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.addModuleDescriptor(RegistryInfrastructureConstructor.java:202)
>>>>
>>>> org.apache.hivemind.impl.RegistryBuilder.processModuleDescriptorProvider(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)
>>>>
>>>
>>> --+-------------------------------
>>> | Bryan Noll
>>> | Practice Consultant
>>> | Virtuas Open Source Solutions
>>> | o: 303.260.7300 x713
>>> | c: 720.201.9659
>>> +-------------------------------
>>>
>>
>>
>>
>
|