java - NoSuchMethodError: org/apache/log4j/Logger.setLevel(Lorg/apache/log4j/Level;) -
i using these log4j, slf4j , ch.qos.logback dependencies in pom.xml of java project:
<dependency> <groupid>org.slf4j</groupid> <artifactid>slf4j-api</artifactid> <version>1.6.4</version> </dependency> <dependency> <groupid>ch.qos.logback</groupid> <artifactid>logback-core</artifactid> <version>1.1.2</version> </dependency> <dependency> <groupid>org.slf4j</groupid> <artifactid>jcl-over-slf4j</artifactid> <version>1.6.4</version> </dependency> <dependency> <groupid>org.slf4j</groupid> <artifactid>log4j-over-slf4j</artifactid> <version>1.6.4</version> </dependency> <dependency> <groupid>org.slf4j</groupid> <artifactid>jul-to-slf4j</artifactid> <version>1.6.4</version> </dependency> <dependency> <groupid>log4j</groupid> <artifactid>log4j</artifactid> <version>1.2.14</version> </dependency>
i wanted use external servlet library , defined dependency in pom. init method of servlet looks this:
import org.apache.log4j.level; import org.apache.log4j.logger; .... public class healthpageservlet extends httpservlet{ private static final long serialversionuid = 1l; private final logger logger = logger.getlogger(healthpageservlet.class.getname()); protected healthpageservice service; public static final string version = "healthpage-version 0.0.4"; public void init() throws servletexception { logger.setlevel(level.info); ..... }
my weblogic server shows me exception init method, when start server:
java.lang.nosuchmethoderror: org/apache/log4j/logger.setlevel(lorg/apache/log4j/level;)v
when in eclipse open healthpageservlet jar content, has log4j-1.2.15 jar inside web-inf/lib folder. if exclude dependency pom.xml, see exception , server not start. problem?
since log4j version (1.2.15) of external jar incompatible slf4j version (1.6.4) of parent project (where logger.setlevel() not available), had update slf4j version 1.7.7.
Comments
Post a Comment