2012-03-26 115 views
0

在我的webapp中,我使用Spring MVC作为控制器层。然而,使用由MVC上下文中提供的标签:Spring MVC初始化导致Log4J异常

<mvn:annotation-driven /> 
<mvc:resources /> 

导致log4j的例外:

<Mar 26, 2012 1:49:50 PM EDT> <Warning> <HTTP> <BEA-101162> <User defined listener   
org.springframework.web.context.ContextLoaderListener failed: 
java.lang.NoClassDefFoundError: org/apache/log4j/spi/ThrowableInformation. 
java.lang.NoClassDefFoundError: org/apache/log4j/spi/ThrowableInformation 
at org.apache.log4j.spi.LoggingEvent.<init>(LoggingEvent.java:165) 
at org.apache.log4j.Category.forcedLog(Category.java:391) 
at org.apache.log4j.Category.log(Category.java:856) 
at org.slf4j.impl.Log4jLoggerAdapter.log(Log4jLoggerAdapter.java:597) 
at org.apache.commons.logging.impl.SLF4JLocationAwareLog.error(SLF4JLocationAwareLog.java:225) 
Truncated. see log file for complete stacktrace 

(LoggingEvent.java:165)在org.apache.log4j.Category.forcedLog在org.apache.commons(Category.java:391) 在org.apache.log4j.Category.log(Category.java:856) 在org.slf4j.impl.Log4jLoggerAdapter.log(Log4jLoggerAdapter.java:597) .logging.impl.SLF4JLocationAwareLog.error(SLF4JLocationAwareLog.java:225) 截断。查看日志文件的完整的堆栈跟踪

基本的东西:

  1. 的log4j-1.2.16.jar在Maven的POM定义,是在应用程序库。

  2. 因为它是一个WebLogic Server中,我已经中weblogic.xml文件下面,试图阻止冲突:

    <wls:prefer-application-packages> 
        <wls:package-name>org.apache.log4j.*</wls:package-name> 
    </wls:prefer-application-packages> 
    
  3. (更新)我手动排除共享记录在Maven POM的应用。

  4. (更新)我已经在我的Maven POM的SLF4J罐(除去JCL-过SLF4J没有任何影响):

    <dependency> 
        <groupId>org.slf4j</groupId> 
        <artifactId>jcl-over-slf4j</artifactId> 
        <version>1.5.8</version> 
        <scope>runtime</scope> 
    </dependency> 
    <dependency> 
        <groupId>org.slf4j</groupId> 
        <artifactId>slf4j-api</artifactId> 
        <version>1.5.8</version> 
        <scope>runtime</scope> 
    </dependency> 
    <dependency> 
        <groupId>org.slf4j</groupId> 
        <artifactId>slf4j-log4j12</artifactId> 
        <version>1.5.8</version> 
        <scope>runtime</scope> 
    </dependency> 
    

基本上,我需要排除的基本CSS和js目录作为web下的WEB-INF /下的单个目录,其中包含一些jspf文件,我不想为jquery superfish使用的下拉菜单定义编写控制器。

任何帮助?

回答

2

添加SLF4J-LOG4连接到POM:

 <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-log4j12</artifactId> 
      <version>${slf4j-version}</version> 
      <scope>runtime</scope> 
     </dependency> 
+0

已经办完了在那里。我更新了原来的问题,以澄清我已经拥有了这一点。 – Jason 2012-03-26 20:35:06

+0

尝试将log4j版本更改为1.2.8 – vacuum 2012-03-26 21:07:01

+0

检查您是否只有 在您的类路径 – vacuum 2012-03-26 21:08:07