我们有一个 Spring MVC 应用程序在 RackSpace 上的多个 Tomcat 7 服务器上运行。在每个类中,我们都有类似于以下内容的内容:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
...
protected final transient Logger logger = LoggerFactory.getLogger(this.getClass());
我们获取 MVC 控制器的所有日志记录条目,并且大部分日志记录来自我们的模型类(JavaBeans),但偶尔会出现以下调用:
logger.debug("some logging");
引发 NullPointerException。显然“记录器”是空的,但我没有解释为什么会这样。它是在类声明的顶部初始化的,所以我很困惑。