You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Mike Spreitzer <ms...@us.ibm.com> on 2002/05/13 23:57:58 UTC

Axis beta1 vs. ClassLoader management - Commongs logging fails

I have an application that explicitly constructs and uses various 
instances of java.net.URLClassLoader.  I use one to load Axis beta1.  When 
I try to use Axis (specifically, 
org.apache.axis.utils.XMLUtils#newDocument), something goes wrong.  Here 
is a typescript, showing first a debugging printout of a relevant 
classpath and then (some rendition of) the exception that arises:

Setting context ClassLoader to:
ClassLoader com.ibm.wsstk.common.WsstkClassLoader@258f1822: has 1 URLS:
        file:/c:/mspreitz/build/wsstk/lib/wsstk.jar

Has parent:
ClassLoader com.ibm.wsstk.common.WsstkClassLoader@258d9822: has 1 URLS:
        file:/c:/xml-axis-beta1/lib/clutil.jar

Has parent:
ClassLoader com.ibm.wsstk.common.WsstkClassLoader@25881822: has 1 URLS:
        file:/c:/xml-axis-beta1/lib/wsdl4j.jar

Has parent:
ClassLoader com.ibm.wsstk.common.WsstkClassLoader@25b69822: has 1 URLS:
        file:/c:/xml-axis-beta1/lib/log4j-core.jar

Has parent:
ClassLoader com.ibm.wsstk.common.WsstkClassLoader@25b51822: has 1 URLS:
        file:/c:/xml-axis-beta1/lib/axis.jar

Has parent:
ClassLoader com.ibm.wsstk.common.WsstkClassLoader@25b39822: has 1 URLS:
        file:/c:/xml-axis-beta1/lib/tt-bytecode.jar

Has parent:
ClassLoader com.ibm.wsstk.common.WsstkClassLoader@25be1822: has 1 URLS:
        file:/c:/xml-axis-beta1/lib/commons-logging.jar

Has parent:
ClassLoader com.ibm.wsstk.common.WsstkClassLoader@25bc9822: has 1 URLS:
        file:/c:/xml-axis-beta1/lib/jaxrpc.jar

Has parent:
ClassLoader com.ibm.wsstk.common.WsstkClassLoader@25bb1822: has 1 URLS:
        file:/c:/xerces-1_4_4/xerces.jar

Has parent:
ClassLoader com.ibm.wsstk.common.WsstkClassLoader@25b99822: has 0 URLS:

Has parent:
ClassLoader sun.misc.Launcher$AppClassLoader@25a21822: has 1 URLS:
        file:/C:/mspreitz/build/wsstk/lib/boot.jar

Has parent:
ClassLoader sun.misc.Launcher$ExtClassLoader@25a01822: has 10 URLS:
        file:/C:/Program%20Files/IBM/Java13/jre/lib/ext/cmpcrmf.jar
        file:/C:/Program%20Files/IBM/Java13/jre/lib/ext/gskikm.jar
        file:/C:/Program%20Files/IBM/Java13/jre/lib/ext/IBMJCEfw.jar
        file:/C:/Program%20Files/IBM/Java13/jre/lib/ext/IBMJCEProvider.jar
        file:/C:/Program%20Files/IBM/Java13/jre/lib/ext/ibmjsse.jar
        file:/C:/Program%20Files/IBM/Java13/jre/lib/ext/ibmpkcs.jar
        file:/C:/Program%20Files/IBM/Java13/jre/lib/ext/indicim.jar
        file:/C:/Program%20Files/IBM/Java13/jre/lib/ext/JawBridge.jar
        file:/C:/Program%20Files/IBM/Java13/jre/lib/ext/local_policy.jar
 file:/C:/Program%20Files/IBM/Java13/jre/lib/ext/US_export_policy.jar
No parent.
--------- UNCAUGHT EXCEPTION ---------
java.lang.ExceptionInInitializerError: 
org.apache.commons.logging.LogConfigurationException: 
java.lang.reflect.InvocationTargetException
        at 
org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:509)
        at 
org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:285)
        at 
org.apache.commons.logging.LogFactory.getLog(LogFactory.java:400)
        at org.apache.axis.utils.XMLUtils.<clinit>(Unknown Source)
        at ...


The elided stack portion is my application (and all the JFC junk involved 
in invoking it).  The class com.ibm.wsstk.common.WsstkClassLoader extends java.net.URLClassLoader purely by adding stuff --- no methods are overridden.  To make Xerces 
(v2, at least) happy, I am calling Thread.setContextClassLoader before 
this (in the same thread), passing the ClassLoader described by the 
printout above.  The printout traces the delegation path from the class 
loader in question, as long as the loader is a URLClassLoader, printing 
the URLs at each step.

I am using Axis beta1, Xerces 1.4.4, and IBM's JDK 1.3 (with its copy of 
Xerces and XML4J removed from jre/lib/ext/ for testing purposes).

Why are Axis & Commons logging doing this to me?  I am trying to keep the 
appropriate classpath current, and do not understand why they are 
assaulting me thus.

Thanks,
Mike