geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dain Sundstrom <d...@iq80.com>
Subject Re: [jira] Closed: (GERONIMO-1871) Unable to deploy Tapestry app due to classloading issue
Date Sun, 23 Apr 2006 03:07:57 GMT
+1 absolutely

Can you do it?

-dain

On Apr 22, 2006, at 7:36 PM, Jeff Genender wrote:

> Can we get this in 1.1?  This is a pretty nasty bug.
>
> Jeff
>
>
> Gianny Damour (JIRA) wrote:
>>      [ http://issues.apache.org/jira/browse/GERONIMO-1871?page=all ]
>>      Gianny Damour closed GERONIMO-1871:
>> -----------------------------------
>>     Resolution: Fixed
>> The problem was that the TCCL was set to the Tomcat  
>> WebAppClassLoader and not the Geronimo TomcatClassLoader.  
>> WebAppClassLoader was defining all the jars in WEB-INF/lib, its  
>> parent was TomcatClassLoader, which was also defining these jars.  
>> Hence this duplication.
>>> Unable to deploy Tapestry app due to classloading issue
>>> -------------------------------------------------------
>>>
>>>          Key: GERONIMO-1871
>>>          URL: http://issues.apache.org/jira/browse/GERONIMO-1871
>>>      Project: Geronimo
>>>         Type: Bug
>>>     Security: public(Regular issues)   Components: kernel
>>>     Versions: 1.2
>>>  Environment: Windows XP
>>>     Reporter: Bryan Noll
>>>     Assignee: Gianny Damour
>>>     Priority: Critical
>>> Here is the stacktrace encountered when attempting to deploy a  
>>> Tapestry application.  Please scroll down to see more info after  
>>> the stack trace.
>>> 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.addModule 
>>> Descriptor(RegistryInfrastructureConstructor.java:202)
>>> org.apache.hivemind.impl.RegistryBuilder.processModuleDescriptorProv 
>>> ider(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.attemptFullStar 
>>> t(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) The  
>>> org.apache.hivemind.impl.XmlModuleDescriptorProvider.getDescriptorRe 
>>> sources method of the hivemind-1.1.jar (depended upon by  
>>> Tapestry) makes a call like:
>>> classLoader.getResources("META-INF/hivemodule.xml")
>>> and 14 different resources are returned.  There should only be 7,  
>>> as each one of them are errantly duplicated.  See the following  
>>> output from some println's added to the hivemind code.  This is  
>>> printed out in the e.hasMoreElements while loop...
>>> 15:10:26,006 INFO  [XmlModuleDescriptorProvider] Processing  
>>> modules visible to  
>>> org.apache.hivemind.impl.DefaultClassResolver@1ce6eaf for  
>>> resourcePath = META-INF/hivemodule.xml
>>> XmlModuleDescriptorProvider.getDescriptorResources - jar:file:/C:/ 
>>> tools/geronimo-1.2-SNAPSHOT/config-store/42/war/WEB-INF/lib/ 
>>> hivemind-1.1.jar!/META-INF/hivemodule.xml
>>> XmlModuleDescriptorProvider.getDescriptorResources - jar:file:/C:/ 
>>> tools/geronimo-1.2-SNAPSHOT/config-store/42/war/WEB-INF/lib/ 
>>> hivemind-lib-1.1.jar!/META-INF/hivemodule.xml
>>> XmlModuleDescriptorProvider.getDescriptorResources - jar:file:/C:/ 
>>> tools/geronimo-1.2-SNAPSHOT/config-store/42/war/WEB-INF/lib/ 
>>> tapestry-4.0.jar!/META-INF/hivemodule.xml
>>> XmlModuleDescriptorProvider.getDescriptorResources - jar:file:/C:/ 
>>> tools/geronimo-1.2-SNAPSHOT/config-store/42/war/WEB-INF/lib/ 
>>> tapestry-annotations-4.0.jar!/META-INF/hivemodule.xml
>>> XmlModuleDescriptorProvider.getDescriptorResources - jar:file:/C:/ 
>>> tools/geronimo-1.2-SNAPSHOT/config-store/42/war/WEB-INF/lib/ 
>>> tapestry-contrib-4.0.jar!/META-INF/hivemodule.xml
>>> XmlModuleDescriptorProvider.getDescriptorResources - jar:file:/C:/ 
>>> tools/geronimo-1.2-SNAPSHOT/config-store/42/war/WEB-INF/lib/ 
>>> tapestry-flash-0.1.1.jar!/META-INF/hivemodule.xml
>>> XmlModuleDescriptorProvider.getDescriptorResources - jar:file:/C:/ 
>>> tools/geronimo-1.2-SNAPSHOT/config-store/42/war/WEB-INF/lib/ 
>>> tapestry-spring-0.1.2.jar!/META-INF/hivemodule.xml
>>> XmlModuleDescriptorProvider.getDescriptorResources - jar:file:/C:/ 
>>> tools/geronimo-1.2-SNAPSHOT/config-store/42/war/WEB-INF/lib/ 
>>> hivemind-1.1.jar!/META-INF/hivemodule.xml
>>> XmlModuleDescriptorProvider.getDescriptorResources - jar:file:/C:/ 
>>> tools/geronimo-1.2-SNAPSHOT/config-store/42/war/WEB-INF/lib/ 
>>> hivemind-lib-1.1.jar!/META-INF/hivemodule.xml
>>> XmlModuleDescriptorProvider.getDescriptorResources - jar:file:/C:/ 
>>> tools/geronimo-1.2-SNAPSHOT/config-store/42/war/WEB-INF/lib/ 
>>> tapestry-4.0.jar!/META-INF/hivemodule.xml
>>> XmlModuleDescriptorProvider.getDescriptorResources - jar:file:/C:/ 
>>> tools/geronimo-1.2-SNAPSHOT/config-store/42/war/WEB-INF/lib/ 
>>> tapestry-annotations-4.0.jar!/META-INF/hivemodule.xml
>>> XmlModuleDescriptorProvider.getDescriptorResources - jar:file:/C:/ 
>>> tools/geronimo-1.2-SNAPSHOT/config-store/42/war/WEB-INF/lib/ 
>>> tapestry-contrib-4.0.jar!/META-INF/hivemodule.xml
>>> XmlModuleDescriptorProvider.getDescriptorResources - jar:file:/C:/ 
>>> tools/geronimo-1.2-SNAPSHOT/config-store/42/war/WEB-INF/lib/ 
>>> tapestry-flash-0.1.1.jar!/META-INF/hivemodule.xml
>>> XmlModuleDescriptorProvider.getDescriptorResources - jar:file:/C:/ 
>>> tools/geronimo-1.2-SNAPSHOT/config-store/42/war/WEB-INF/lib/ 
>>> tapestry-spring-0.1.2.jar!/META-INF/hivemodule.xml
>>> size of descriptors list = 14


Mime
View raw message