Hi Jeff & Arnaud Thanks for your quick response. Much appreciate your help.
The class throwing the exception is src/java/au/com/sc/enterprisesms/SmsAppender.java and it extends au.com.sc.logging.AbstractAlarmAppender which is contained in our commons library SCCommons-1.0.jar. au.com.sc.logging.AbstractAlarmAppender in turn extends org.apache.log4j.AppenderSkeleton BTW : if I don't etxtend org.apache.log4j.AppenderSkeleton in our AbstractAlarmAppender then I don't get a ClassDefFoundError. Instead I get an Incompatible type exception, which is understandable. Thanks Lakshman > -----Original Message----- > From: Arnaud HERITIER [mailto:[EMAIL PROTECTED] > Sent: Wednesday, 10 January 2007 1:05 PM > To: Maven Users List > Subject: Re: [M1] cobertura-1.8 java.lang.NoClassDefFoundError > > It's like if your class wasn't found. > Do you see it in the target/classes dir ? > > Arnaud > > On 1/10/07, Srilakshmanan, Lakshman < > [EMAIL PROTECTED]> wrote: > > > > Yes > > > > Thanks > > Lakshman > > > > > > > -----Original Message----- > > > From: Arnaud HERITIER [mailto:[EMAIL PROTECTED] > > > Sent: Wednesday, 10 January 2007 12:11 PM > > > To: Maven Users List > > > Subject: Re: [M1] cobertura-1.8 java.lang.NoClassDefFoundError > > > > > > au/com/sc/logging/AbstractAlarmAppender > > > This is the class you developed ? > > > > > > Arnaud > > > > > > > > > On 1/10/07, Srilakshmanan, Lakshman < > > > [EMAIL PROTECTED]> wrote: > > > > > > > > Thanks Jeff & Arnaud for your feedback. > > > > > > > > I have upgraded log4j dependency from 1.2.8 to 1.2.9 to no avail. > > > > Please find snippet of the build output below. > > > > > > > > The output shows that the log4j is loaded in the classpath. > > > > > > > > What's interesting is that cobertura appears to be referencing > > > > net.sourceforge.cobertura.ant.AntUtil ?? > > > > > > > > Any suggestions welcome. > > > > > > > > Thanks again > > > > Lakshman > > > > > > > > . > > > > . > > > > . > > > > . > > > > cobertura:on: > > > > . > > > > . > > > > . > > > > . > > > > . > > > > > > > > [DEBUG] Finding class net.sourceforge.cobertura.util.StringUtil > > > > [DEBUG] Class net.sourceforge.cobertura.util.StringUtil loaded from > > ant > > > > loader > > > > [DEBUG] Class java.lang.StringBuffer loaded from parent loader > > > > [cobertura-instrument] [DEBUG] Class java.io.Reader loaded from > > > > parent loader > > > > [cobertura-instrument] [DEBUG] Class java.io.FileReader loaded > > from > > > > parent loader > > > > [cobertura-instrument] [DEBUG] Class org.apache.log4j.Category > > > > loaded from parent loader > > > > [cobertura-instrument] [DEBUG] Class org.apache.log4j.Logger > > loaded > > > > from parent loader > > > > [cobertura-instrument] [DEBUG] Class > > > > java.lang.IllegalArgumentException loaded from parent loader > > > > . > > > > . > > > > . > > > > . > > > > . > > > > [cobertura-instrument] [DEBUG] Class > > > > org.apache.tools.ant.types.Commandline$Argument loaded from parent > > > > loader > > > > [cobertura-instrument] [DEBUG] Finding class > > > > net.sourceforge.cobertura.ant.AntUtil > > > > [cobertura-instrument] [DEBUG] Class > > > > net.sourceforge.cobertura.ant.AntUtil loaded from ant loader > > > > [cobertura-instrument] [VERBOSE] Executing > > > > '/usr/java/jdk1.5.0_07/jre/bin/java' with arguments: > > > > '-classpath' > > > > > > '/repository/cobertura/jars/cobertura-1.8.jar:/project/Build/checkout/SM > > > > > > SService/target/classes:/repository/asm/jars/asm-2.2.1.jar:/repository/o > > > > ro/jars/oro-2.0.8.jar:/repository/log4j/jars/log4j-1.2.9.jar' > > > > 'net.sourceforge.cobertura.instrument.Main' > > > > '--commandsfile' > > > > '/tmp/cobertura.44644.cmdline' > > > > > > > > The ' characters around the executable and arguments are > > > > not part of the command. > > > > > > > > [cobertura-instrument] [DEBUG] Execute:Java13CommandLauncher: > > > > Executing '/usr/java/jdk1.5.0_07/jre/bin/java' with arguments: > > > > '-classpath' > > > > > > '/repository/cobertura/jars/cobertura-1.8.jar:/project/Build/checkout/SM > > > > > > SService/target/classes:/repository/asm/jars/asm-2.2.1.jar:/repository/o > > > > ro/jars/oro-2.0.8.jar:/repository/log4j/jars/log4j-1.2.9.jar' > > > > 'net.sourceforge.cobertura.instrument.Main' > > > > '--commandsfile' > > > > '/tmp/cobertura.44644.cmdline' > > > > > > > > The ' characters around the executable and arguments are > > > > not part of the command. > > > > > > > > [cobertura-instrument] log4j: Threshold ="null". > > > > [cobertura-instrument] log4j: Retreiving an instance of > > > > org.apache.log4j.Logger. > > > > [cobertura-instrument] log4j: Setting [org.apache] additivity to > > > > [true]. > > > > [cobertura-instrument] log4j: Level value for org.apache is > > [OFF]. > > > > [cobertura-instrument] log4j: org.apache level set to OFF > > > > [cobertura-instrument] log4j: Retreiving an instance of > > > > org.apache.log4j.Logger. > > > > [cobertura-instrument] Exception in thread "main" > > > > java.lang.NoClassDefFoundError: > > au/com/sc/logging/AbstractAlarmAppender > > > > [cobertura-instrument] at > > > > java.lang.ClassLoader.defineClass1(Native Method) > > > > [cobertura-instrument] log4j: Setting [au.com.sc.enterprisesms] > > > > additivity to [true]. > > > > > > > > > > > > Thanks > > > > Lakshman > > > > > > > > > > > > > -----Original Message----- > > > > > From: Jeff Jensen [mailto:[EMAIL PROTECTED] > > > > > Sent: Wednesday, 10 January 2007 9:29 AM > > > > > To: Maven Users List > > > > > Subject: Re: [M1] cobertura-1.8 java.lang.NoClassDefFoundError > > > > > > > > > > Cobertura plugin 1.7 started depending on log4j 1.2.9, and the > > Maven > > > > > plugin depends on that. Is your issue related to the version of > > > > log4j, > > > > > i.e. 1.2.8 vs 1.2.9? > > > > > > > > > > > > > > > Quoting Arnaud HERITIER <[EMAIL PROTECTED]>: > > > > > > > > > > > Hi, > > > > > > > > > > > > Having a look at the plugin code, it doesn't seem to be useful > > to > > > > add > > > > > > log4j in your classpath. > > > > > > When tests are executed with cobertura, the following > > classpath > > > > entries > > > > > > are added : > > > > > > <!-- global definitions --> > > > > > > <ant:path id="cobertura.classpath"> > > > > > > <ant:pathelement path="${maven.build.dest}"/> > > > > > > <ant:pathelement path="${plugin.getDependencyPath > > > > > > ('urbanophile:java-getopt')}"/> > > > > > > <ant:pathelement path="${plugin.getDependencyPath > > > > > > ('javancss:javancss')}"/> > > > > > > <ant:pathelement > > > > path="${plugin.getDependencyPath('javancss:ccl')}"/> > > > > > > <ant:pathelement path="${plugin.getDependencyPath('asm')}"/> > > > > > > <ant:pathelement path="${plugin.getDependencyPath('oro')}"/> > > > > > > <ant:pathelement > > path="${plugin.getDependencyPath('log4j')}"/> > > > > > > <ant:pathelement > > > > path="${plugin.getDependencyPath('cobertura')}"/> > > > > > > </ant:path> > > > > > > > > > > > > For which class do you have a NoClassDefFoundError ? Can't it > > be > > > > a > > > > > > conflict between the version of log4J in your project and the > > one > > > > used in > > > > > > the cobertura plugin ? > > > > > > > > > > > > Arnaud > > > > > > > > > > > > > > > > > > On 1/9/07, Srilakshmanan, Lakshman < > > > > > > [EMAIL PROTECTED]> wrote: > > > > > > > > > > > > > > Hi All, > > > > > > > > > > > > > > I am using maven-cobertura-plugin-1.2 & cobertura-1.8. > > > > > > > We have extended the org.apache.log4j.AppenderSkeleton class. > > > > > > > > > > > > > > When cobertura tries to instrument the class a > > > > > > > java.lang.NoClassDefFoundError is thrown. > > > > > > > > > > > > > > I have searched the mail archive and found mails referring to > > > > older > > > > > > > versions, and that it was fixed in cobertura-1.8. There are > > also > > > > mails > > > > > > > suggesting to add log4j in the project classpath. > > > > > > > > > > > > > > Could someone please tell me if you have tried to extend the a > > > > log4j > > > > > > > class and if you experienced the same problem or am I just > > unlucky > > > > and > > > > > > > did something wrong in my implementation. > > > > > > > > > > > > > > Is adding log4j to class path done as follows > > > > > > > <dependency> > > > > > > > <groupId>log4j</groupId> > > > > > > > <artifactId>log4j</artifactId> > > > > > > > <version>1.2.8</version> > > > > > > > <url>log4j/jars</url> > > > > > > > <properties> > > > > > > > <classloader>root.maven</classloader> > > > > > > > </properties> > > > > > > > </dependency> > > > > > > > > > > > > > > The funny part is, there is a message "adding dependency > > > > > > > /repository/log4j/jars/log4j-1.2.8.jar into project > > classloader". > > > > So I > > > > > > > don't quite believe adding log4j to the project classpath > > would > > > > resolve > > > > > > > the problem. I believe I need to add it to the classpath used > > by > > > > > > > cobertura and I don't believe it is using the project > > classpath. > > > > > > > > > > > > > > Any help/suggestions is greatly appreciated. > > > > > > > > > > > > > > Thanks in advance. > > > > > > > > > > > > > > Thanks > > > > > > > Lakshman > > > > > > > > > > > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > > > > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]