geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Bryan Noll <bn...@virtuas.com>
Subject Re: Unable to deploy Tapestry app on Geronimo
Date Mon, 17 Apr 2006 04:52:32 GMT


Gianny Damour wrote:
> Hi Bryan,
>
> As a "simple" solution, you can start the jmxdebug console, config 
> geronimo/jmxdebug-jetty/1.2-SNAPSHOT/car for Jetty, and observe the 
> webClassPath attribute of the relevant WebModule (the contextroot of 
> the jmxdebug console is debug-tool).
>
> Also, could you please tell us what you exactly mean by?
> "'
> 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.
> "
Sure, let me clear that up.
To set the stage, I have downloaded and extracted Geronimo, started it, 
verified that it is running smoothly, then deploy my Tapestry app via 
the command line deployer.jar tool.  (First deployment, only one app 
deployed.)  After the deployment...

Searching from GERONIMO_HOME/config-store/42, using 'find . -name \*.jar 
| xargs grep -l hivemodule.xml' ... I get....
./war/WEB-INF/lib/hivemind-1.1.jar
./war/WEB-INF/lib/hivemind-lib-1.1.jar
./war/WEB-INF/lib/tapestry-4.0.jar
./war/WEB-INF/lib/tapestry-annotations-4.0.jar
./war/WEB-INF/lib/tapestry-contrib-4.0.jar
./war/WEB-INF/lib/tapestry-flash-0.1.1.jar
./war/WEB-INF/lib/tapestry-spring-0.1.2.jar

When tapestry 'bootstraps', it has some 'run one time in the beginning' 
type code that needs to add information from each of these 
hivemodule.xml files (I believe it needs info from more files than that, 
but for brevity I'm just describing the hivemodule.xml files).  As far 
as I can tell, the info in these hivemodule.xml files can be likened to 
beans in a Spring applicationContext, and Hivemind is building a 
registry of all the application's beans. (I'm NOT an experienced 
Hivemind person, so this may not be exactly correct.)

12:54:13,609 DEBUG [RegistryBuilder] Processing module hivemind'., for 
the sake of my description, could basically be translated as:

**DEBUG** Processed hivemodule.xml file from 
./war/WEB-INF/lib/hivemind-1.1.jar

So, going with the order of the 'find' from above, I see (my translated 
version) ...

**DEBUG** Processed hivemodule.xml file from 
./war/WEB-INF/lib/hivemind-1.1.jar
**DEBUG** Processed hivemodule.xml file from 
./war/WEB-INF/lib/hivemind-lib-1.1.jar
**DEBUG** Processed hivemodule.xml file from 
./war/WEB-INF/lib/tapestry-4.0.jar
**DEBUG** Processed hivemodule.xml file from 
./war/WEB-INF/lib/tapestry-annotations-4.0.jar
**DEBUG** Processed hivemodule.xml file from 
./war/WEB-INF/lib/tapestry-contrib-4.0.jar
**DEBUG** Processed hivemodule.xml file from 
./war/WEB-INF/lib/tapestry-flash-0.1.1.jar
**DEBUG** Processed hivemodule.xml file from 
./war/WEB-INF/lib/tapestry-spring-0.1.2.jar
**DEBUG** Processed hivemodule.xml file from 
./war/WEB-INF/lib/hivemind-1.1.jar ............ (!!!! Note... this is a 
repeat of the 1st one... and this is where the exception spewage occurs.)


Hope that makes it easier to understand.  As for your other suggestions, 
I'll give them a go... and get back with what I find.
> Based on your error, I think that you are stopping and starting the 
> configuration; as the same CL is used across start and stop operations 
> by the Web application context, this could be a problem. If this is 
> the case, then I think that the fix is to create a new Web application 
> context CL at each start-up. You can do this by adding this line at 
> line 403 of TomcatWebAppContext:
>
>        this.webClassLoader = new TomcatClassLoader(urls, 
> webAppRootURL, classLoader, contextPriorityClassLoader);
>
> Could you please give it a shoot and report if it works better?
>
> Thanks,
> Gianny
>
>
> Bryan Noll wrote:
>
>> I forgot to ask... to make sure I understand.... when you say "dump 
>> the class loaders and URLs"... I assume you mean into a log, which 
>> would mean editing code and re-building, correct?  Just wanted to 
>> make sure I was the only one who didn't know how to do this via the 
>> admin console or something before going about it this way.
>>
>> Thanks....
>>
>> Bryan
>>
>> Bryan Noll wrote:
>>
>>> Thanks for responding Aaron.  Strange to me as well.  I'm pretty 
>>> sure its not getting on the classpath twice because there's two 
>>> copies of a hivemind library somewhere in the server.  For instance...
>>>
>>> 1) Download and extract G-mo... do a find . -name hive* in the 
>>> G-MO_HOME dir... and get nothing...
>>>
>>> 2) Start the server and deploy the simple Tapestry app (via the 
>>> command line deployer).... see the aforementioned error...
>>>
>>> 3) Now, do the 'find . -name hive*' again, and find the hivemind and 
>>> hivemind-lib jar files in '/config-store/42' directory...
>>>
>>> At any rate, thanks for responding...
>>>
>>> Aaron Mulder wrote:
>>>
>>>> Sounds like maybe the same JAR/dir is on the class path twice? 
>>>> Strange that this should be a problem.  You might try dumping the
>>>> class loaders and the URLs they contain and see if you can get a
>>>> clearer picture of the overlap.
>>>>
>>>> Thanks,
>>>>     Aaron
>>>>
>>>> On 4/16/06, Bryan Noll <bnoll@virtuas.com> 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.

>>>>>
>>>>
>
>
>
>

-- 
+-------------------------------
| Bryan Noll
| Practice Consultant
| Virtuas Open Source Solutions
| o: 303.260.7300 x713
| c: 720.201.9659
+-------------------------------


Mime
View raw message