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