I have found the issue and quickly hacked a fix on my local (set a
Loader with the correct CL in GeronimoStandardContext).
Basically, the Thread Context ClassLoader is wrong and it causes this
problem: it is set to a WebappLoader, which automatically imports the
jars in the WEB-INF/lib folder, and its parent is "our"
TomcatClassLoader, which imports once again the jars in WEB-INF/lib.
Hence, the META-INF/hivemodule.xml resource is found two times in the
same jar.
I will clean this hack over the week-end.
Thanks,
Gianny
Gianny Damour wrote:
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)