You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by Micael <ca...@harbornet.com> on 2003/03/29 08:53:23 UTC

Classloading Mysteries: WHATSUP?

I have created a daemon which I want to startup when Tomcat is started 
up.  If I configure the daemon to be started with a servlet in web.xml or 
by using a PlugIn interface and struts-config.xml, I get two daemons 
running.  How I don't know.  If I don't start the daemon at startup but by 
tweaking a servlet after startup, where the servlet calls the daemon, then 
I don't get two daemons.  Does anyone have any idea how this is 
happening?  I am getting two classloaders of the same type, i.e. same type 
but different hashcodes.  Anyone know what is going on.  I am running 
Struts 1.1 and Tomcat 1.1.18.  I have asked this question in a few ways 
with no responses.  I can find nothing relevant in the archives.  They are 
both coming from the WebappClassLoader which has as a parent 
sun.misc.Launcher$AppClassLoader@17172ea.

Hopefully someone has some assistance, because I am somewhat at a 
loss.  This must have something to do with the launcher, but I don't know 
what.  I have tried to get some information for a week out of this 
list.  Not sure if no one is doing PlugIns, or why there is so little 
interest in this.

The hashcodes I get for the classloaders are as follows:


LOOP: ClassLoader.hashCode(): 728272 Class.hashCode(): 15612583   Check 
No.: 657) Fri Mar 28 22:47:17 PST 2003 END


LOOP: ClassLoader.hashCode(): 20632381 Class.hashCode(): 10973446  Check 
No.: 659) Fri Mar 28 22:47:19 PST 2003 END

The details on the classloaders are:

LOOP: ClassLoader.toString(): WebappClassLoader
   available:
     Extension[org.apache.commons.beanutils, implementationVendor=Apache 
Software Foundation, implementationVersion=1.4-dev, 
specificationVendor=Apache Software Foundation, specificationVersion=1.0]
     Extension[org.apache.commons.collections, implementationVendor=Apache 
Software Foundation, implementationVersion=2.0, specificationVendor=Apache 
Software Foundation, specificationVersion=1.0]
     Extension[org.apache.commons.dbcp, implementationVendor=Apache 
Software Foundation, implementationVersion=1.0-dev, 
specificationVendor=Apache Software Foundation, specificationVersion=1.0]
     Extension[org.apache.commons.digester, implementationVendor=Apache 
Software Foundation, implementationVersion=1.3-dev, 
specificationVendor=Apache Software Foundation, specificationVersion=1.0]
     Extension[commons-lang, implementationVendor=Apache Software 
Foundation, implementationVersion=1.0-dev, specificationVendor=Apache 
Software Foundation, specificationVersion=1.0]
     Extension[org.apache.commons.logging, implementationVendor=Apache 
Software Foundation, implementationVersion=1.0.1-dev, 
specificationVendor=Apache Software Foundation, specificationVersion=1.0]
     Extension[org.apache.commons.pool, implementationVendor=Apache 
Software Foundation, implementationVersion=1.0, specificationVendor=Apache 
Software Foundation, specificationVersion=1.0]
     Extension[org.apache.commons.resources, implementationVendor=Apache 
Software Foundation, implementationVersion=0.1-dev, 
specificationVendor=Apache Software Foundation, specificationVersion=1.0]
     Extension[org.apache.commons.services, implementationVendor=Apache 
Software Foundation, implementationVersion=1.0-dev, 
specificationVendor=Apache Software Foundation, specificationVersion=1.0]
     Extension[Struts Framework, implementationVendor=Apache Software 
Foundation, implementationVendorId=org.apache, implementationVersion=1.0, 
specificationVendor=Apache Software Foundation, specificationVersion=1.0]
     Extension[Components Framework, implementationVendor=Apache Software 
Foundation, implementationVendorId=org.apache, implementationVersion=0.7, 
specificationVendor=Apache Software Foundation, specificationVersion=1.0]
   delegate: false
   repositories:
     /WEB-INF/classes/
   required:
----------> Parent Classloader:
StandardClassLoader
   available:
   delegate: true
   repositories:
   required:
----------> Parent Classloader:
StandardClassLoader
   available:
     Extension[org.apache.tools.ant, implementationVendor=Apache Software 
Foundation, implementationVersion=1.5.1, specificationVendor=Apache 
Software Foundation, specificationVersion=1.5.1]
     Extension[org.apache.commons.collections, implementationVendor=Apache 
Software Foundation, implementationVersion=1.1-dev, 
specificationVendor=Apache Software Foundation, specificationVersion=1.0]
     Extension[org.apache.commons.logging, implementationVendor=Apache 
Software Foundation, implementationVersion=1.0.2, 
specificationVendor=Apache Software Foundation, specificationVersion=1.0]
   delegate: true
   repositories:
     file:C:\michaelmcgrady\tomcat\common\lib\ant.jar
     file:C:\michaelmcgrady\tomcat\common\lib\commons-collections.jar
     file:C:\michaelmcgrady\tomcat\common\lib\commons-logging-api.jar
     file:C:\michaelmcgrady\tomcat\common\lib\jasper-compiler.jar
     file:C:\michaelmcgrady\tomcat\common\lib\jasper-runtime.jar
     file:C:\michaelmcgrady\tomcat\common\lib\jdbc2_0-stdext.jar
     file:C:\michaelmcgrady\tomcat\common\lib\naming-common.jar
     file:C:\michaelmcgrady\tomcat\common\lib\naming-factory.jar
     file:C:\michaelmcgrady\tomcat\common\lib\naming-resources.jar
     file:C:\michaelmcgrady\tomcat\common\lib\servlet.jar
   required:
----------> Parent Classloader:
sun.misc.Launcher$AppClassLoader@17172ea


  Class.toString(): class 
com.michaelmcgrady.util.message.messages.ip_address.IpDaemon/No.: 0) Fri 
Mar 28 22:57:36 PST 2003 END


LOOP: ClassLoader.hashCode(): 12864392 Class.hashCode(): 32915800/No.: 0) 
Fri Mar 28 22:57:36 PST 2003 END


LOOP: ClassLoader.toString(): WebappClassLoader
   available:
     Extension[org.apache.commons.beanutils, implementationVendor=Apache 
Software Foundation, implementationVersion=1.4-dev, 
specificationVendor=Apache Software Foundation, specificationVersion=1.0]
     Extension[org.apache.commons.collections, implementationVendor=Apache 
Software Foundation, implementationVersion=2.0, specificationVendor=Apache 
Software Foundation, specificationVersion=1.0]
     Extension[org.apache.commons.dbcp, implementationVendor=Apache 
Software Foundation, implementationVersion=1.0-dev, 
specificationVendor=Apache Software Foundation, specificationVersion=1.0]
     Extension[org.apache.commons.digester, implementationVendor=Apache 
Software Foundation, implementationVersion=1.3-dev, 
specificationVendor=Apache Software Foundation, specificationVersion=1.0]
     Extension[commons-lang, implementationVendor=Apache Software 
Foundation, implementationVersion=1.0-dev, specificationVendor=Apache 
Software Foundation, specificationVersion=1.0]
     Extension[org.apache.commons.logging, implementationVendor=Apache 
Software Foundation, implementationVersion=1.0.1-dev, 
specificationVendor=Apache Software Foundation, specificationVersion=1.0]
     Extension[org.apache.commons.pool, implementationVendor=Apache 
Software Foundation, implementationVersion=1.0, specificationVendor=Apache 
Software Foundation, specificationVersion=1.0]
     Extension[org.apache.commons.resources, implementationVendor=Apache 
Software Foundation, implementationVersion=0.1-dev, 
specificationVendor=Apache Software Foundation, specificationVersion=1.0]
     Extension[org.apache.commons.services, implementationVendor=Apache 
Software Foundation, implementationVersion=1.0-dev, 
specificationVendor=Apache Software Foundation, specificationVersion=1.0]
     Extension[Struts Framework, implementationVendor=Apache Software 
Foundation, implementationVendorId=org.apache, implementationVersion=1.0, 
specificationVendor=Apache Software Foundation, specificationVersion=1.0]
     Extension[Components Framework, implementationVendor=Apache Software 
Foundation, implementationVendorId=org.apache, implementationVersion=0.7, 
specificationVendor=Apache Software Foundation, specificationVersion=1.0]
   delegate: false
   repositories:
     /WEB-INF/classes/
   required:
----------> Parent Classloader:
StandardClassLoader
   available:
   delegate: true
   repositories:
   required:
----------> Parent Classloader:
StandardClassLoader
   available:
     Extension[org.apache.tools.ant, implementationVendor=Apache Software 
Foundation, implementationVersion=1.5.1, specificationVendor=Apache 
Software Foundation, specificationVersion=1.5.1]
     Extension[org.apache.commons.collections, implementationVendor=Apache 
Software Foundation, implementationVersion=1.1-dev, 
specificationVendor=Apache Software Foundation, specificationVersion=1.0]
     Extension[org.apache.commons.logging, implementationVendor=Apache 
Software Foundation, implementationVersion=1.0.2, 
specificationVendor=Apache Software Foundation, specificationVersion=1.0]
   delegate: true
   repositories:
     file:C:\michaelmcgrady\tomcat\common\lib\ant.jar
     file:C:\michaelmcgrady\tomcat\common\lib\commons-collections.jar
     file:C:\michaelmcgrady\tomcat\common\lib\commons-logging-api.jar
     file:C:\michaelmcgrady\tomcat\common\lib\jasper-compiler.jar
     file:C:\michaelmcgrady\tomcat\common\lib\jasper-runtime.jar
     file:C:\michaelmcgrady\tomcat\common\lib\jdbc2_0-stdext.jar
     file:C:\michaelmcgrady\tomcat\common\lib\naming-common.jar
     file:C:\michaelmcgrady\tomcat\common\lib\naming-factory.jar
     file:C:\michaelmcgrady\tomcat\common\lib\naming-resources.jar
     file:C:\michaelmcgrady\tomcat\common\lib\servlet.jar
   required:
----------> Parent Classloader:
sun.misc.Launcher$AppClassLoader@17172ea



---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org