1

我在第一行代码的 Spring 应用程序中遇到异常:

ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");

我将 commons-logging-1.1.1.jar 配置为项目库。

这是堆栈跟踪:

java.lang.UnsupportedOperationException:记录器 [org.slf4j.impl.SimpleLogger(org.springframework.context.support.ClassPathXmlApplicationContext)] 似乎不知道位置。

在 org.apache.log4j.Category.log(Category.java:347) 在 org.apache.commons.logging.impl.Log4JLogger.info(Log4JLogger.java:199) 在 org.springframework.context.support.AbstractApplicationContext.prepareRefresh (AbstractApplicationContext.java:456) 在 org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:394) 在 org.springframework.context.support.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:139) 在 org.springframework.context .support.ClassPathXmlApplicationContext.(ClassPathXmlApplicationContext.java:83)

4

1 回答 1

0

看起来您正在同时使用多个日志记录框架。此错误似乎是您的 SLF4J 和 Log4J 配置之间发生冲突的症状。

看看这篇文章:
http
://www.qos.ch/pipermail/slf4j-user/2010-February/000892.html其中指出,

代码 log(String FQCN, Priority p, Object msg, Throwable t) 方法抛出异常,因为调用者期望位置感知日志记录,但实际记录器实现无法提供“位置感知”。

如果没有更多信息,我最好的猜测是您引用了 slf4j jar,例如 slf4j-nop-1.6.1.jar 或其他通过指向 Logger 类的非操作实现来关闭日志记录的东西。

找到罪魁祸首并删除它(或将其替换为 slf4j-log4j 版本)。

你在使用 Maven 吗?

如果是这样,请打开 pom 文件的依赖关系图并搜索名称中包含slf4j的所有依赖关系。删除看起来像 NOOP jar 的那个。

于 2010-09-12T20:19:28.360 回答