Return-Path: Delivered-To: apmail-xml-axis-user-archive@xml.apache.org Received: (qmail 21432 invoked by uid 500); 2 Dec 2002 02:32:54 -0000 Mailing-List: contact axis-user-help@xml.apache.org; run by ezmlm Precedence: bulk Reply-To: axis-user@xml.apache.org list-help: list-unsubscribe: list-post: Delivered-To: mailing list axis-user@xml.apache.org Received: (qmail 21423 invoked from network); 2 Dec 2002 02:32:53 -0000 Subject: Re: commons-logging issue (maybe JUnit-related) To: axis-user@xml.apache.org X-Mailer: Lotus Notes Release 5.0.4 June 8, 2000 Message-ID: From: "Steve Kinsman" Date: Mon, 2 Dec 2002 09:33:54 +0800 X-MIMETrack: Serialize by Router on aupera03/ERG_Group(Release 5.0.8 |June 18, 2001) at 12/02/2002 10:32:51 AM MIME-Version: 1.0 Content-type: text/plain; charset=us-ascii X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N The solution to this is hinted at in the JUnit documentation, and is easy to implement. The problem arises because JUnit uses multiple class loaders across test cases. However it has a list of packages it knows NOT to reload all the time - and you can add to this list. Copy junit\runner\excluded.properties from junit.jar (e.g. foo\junit\runner\excluded.properties), and place your copy earlier in the classpath than junit.jar. (e.g. classpath should have "foo" before junit.jar). Now add the following to your exclude.properties: # # This one is needed to stop exceptions in apache logging (& other areas in Axis too!) # due to reloading by classloader for each test case # excluded.6=org.apache.* I hope this helps! Steve Kinsman Mitch Gitman cc: Subject: Re: commons-logging issue (maybe JUnit-related) 30/11/2002 04:08 Please respond to axis-user Sure enough, this problem does not arise when running my Axis client directly. So where's the conflict with JUnit? The JUnit archive doesn't define these classes. At 11:45 29.11.02 -0800, you wrote: >I'm trying to run some JUnit tests on an Axis client. My client class' >constructor calls the default constructor for >org.apache.axis.client.Service. This causes an exception to crop up: >java.lang.ExceptionInInitializerError >at org.apache.axis.client.Service.(Service.java:108) >... >Caused by: org.apache.commons.logging.LogConfigurationException: ... >org.apache.commons.logging.impl.Jdk14Logger does not implement Log > at > org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:555) >... > >Now, Jdk14Logger does implement Log; both are in commons-logging.jar. At >first, I thought this was a simple classloading issue, that somehow an >inconsistent version of the class or interface was being picked up. But >after moving common-logging.jar to the head of my classpath list for >invoking JUnit, I still got the error. And anyway, I don't see Jdk14Logger >or Log elsewhere in the classpath. > >I suspect this issue has something to do with JUnit, although I haven't a >technical reason. Just, "Jdk14Logger does not implement Log" has made its >way to the Cactus (JUnit for webapps) mailing list. Next, I'm going to try >running my Axis client directly rather than through JUnit. >