Works like a champ! I tested with with axis 1.3 which does indeed employ commons-discovery-0.2.jar .
Thank you so much for taking the time to look into this, it will make it much easier for me to distribute best logging practices throughout our group. (Of course, I really look forward to the day when jcl104-over-slf4j.jar is no longer needed :)) - Dave Ceki Gülcü wrote: > Dave, > > I spent some time reading the source code of commons-discovery version > 0.2 which I believe matches the version you are testing with. Reading > the javadocs for o.a.c.discovery.tools.DiscoverClass and your previous > messages, I added > the file "org.apache.commons.logging.LogFactory" under META-INF/services. > > You can find the modified jar file including the fix as an attachment > to this message. Can you please give it a try? > > Thanks in advance, > > At 07:01 PM 3/21/2006, Dave Wallace wrote: >> I had not modifed jcl104-over-slf4j.jar other than to add >> /META-INF/services by unpacking the jar (from the 1.0 release), adding >> the file and repacking. >> The original, unmodified 1.0 release of jcl104-over-slf4j.jar and the >> one you sent me both fail like so: >> java.lang.ExceptionInInitializerError >> at org.apache.axis.message.NodeImpl.<clinit>(NodeImpl.java:48) >> .... [Elided] .... >> Caused by: org.apache.commons.discovery.DiscoveryException: No >> implementation defined for org.apache.commons.logging.LogFactory >> at >> org.apache.commons.discovery.tools.ClassUtils.verifyAncestory(ClassUtils.java:176) >> >> at >> org.apache.commons.discovery.tools.SPInterface.verifyAncestory(SPInterface.java:201) >> >> at >> org.apache.commons.discovery.tools.SPInterface.newInstance(SPInterface.java:195) >> >> at >> org.apache.commons.discovery.tools.DiscoverClass.newInstance(DiscoverClass.java:579) >> >> at >> org.apache.commons.discovery.tools.DiscoverSingleton.find(DiscoverSingleton.java:418) >> >> at >> org.apache.commons.discovery.tools.DiscoverSingleton.find(DiscoverSingleton.java:378) >> >> at >> org.apache.axis.components.logger.LogFactory$1.run(LogFactory.java:45) >> at java.security.AccessController.doPrivileged(Native Method) >> at >> org.apache.axis.components.logger.LogFactory.getLogFactory(LogFactory.java:41) >> >> at >> org.apache.axis.components.logger.LogFactory.<clinit>(LogFactory.java:33) >> >> ... 37 more >> >> I believe that the vm is able to load >> org.apache.axis.components.logger.LogFactory because javac tends to fold >> public static final variables into generated code, therefore there are >> no references to FACTORY_PROPERTIES and FACTORY_DEFAULT in the axis >> LogFactory, just the values are stored. So I don't think they can be >> overridden without recompiling axis.jar. > > ------------------------------------------------------------------------ > > _______________________________________________ > dev mailing list > dev@slf4j.org > http://slf4j.org/mailman/listinfo/dev > _______________________________________________ dev mailing list dev@slf4j.org http://slf4j.org/mailman/listinfo/dev