Hi Nick,
Thanks for the detailed description.
At 10:56 AM 9/13/2005, Nick Faiz wrote:
Hi Ceki,
This is a hard one to replicate - the environment is complex. My current
environment has four IDEA project modules, each with log4j dependencies.
One of these modules lists ApacheDS as a dependency. The jar for ApacheDS
is holding an unpacked slf4j and log4j distro, (see attached screenshot).
What's in the slf4j distro? Is nlog4j.jar included?
When I run a main method in module1 (which doesn't use ApacheDS) all log
statements in modules 1, 2 and 3 work quite well. When it finally reaches
a logging statement in module4, which *does* use ApacheDS, I see a
NoSuchMethodError:
java.lang.NoSuchMethodError: org.apache.log4j.Logger.info(Ljava/lang/String;)V
Is ApacheDS compiled against nlog4j? If so, could you try replacing log4j
with nlog4j and give it a whirl?
The stacktrace is simply related to the chain of execution in the current
thread (here a TCP Connection, because Im making a HTTP Request). It
doesn't look helpful in this regard but I can send it to you if you would
like to see it. It simply seems that the JVM is trying to execute a method
which doesn't exist.
Roger that.
If I run IDEA with module4 alone, with the log4j dependency and an
ApacheDS dependency (which includes nlog4j, the same screenshot applies),
logging works.
My guess (needs to be verified) is that when module 4 and ApacheDS are
used, classes in nlog4j.jar are used, however with modules 1, 2 and 3,
classes in log4j.jar are seen first (since they are "local" or in the
closest scope). I'd have to verify this hypothesis. Will report back later.
Nick
--
Ceki Gülcü
The complete log4j manual: http://www.qos.ch/log4j/