java - 在 Tomcat 中找不到 logback.xml(或其他资源)

标签 java tomcat classloader slf4j logback

我正在开发一个使用 Logback 作为日志记录框架的 Web 应用程序,并在 Tomcat 6 中对其进行测试。出于某种原因,logback.xml 无法读取。

  • logback.xml 位于WEB-INF/classes
  • Logback 本身在 WEB-INF/lib 中。
  • 我正在使用 SLF4J。
  • 使用 Logback:我在 catalina.out 中看到日志消息,LoggerFactory.getLogger(...) 返回 logback 记录器实例。
  • 我已经重新加载了应用程序,甚至重新启动了 Tomcat。

知道发生了什么吗?

更新:似乎发生了更深层次的事情。这些返回 null:

// in a servlet
getClass().getClassLoader().getResource("/logback.xml");
getClass().getClassLoader().getResource("MyServlet.class");

当我记录类加载器时,一切看起来都很好:

22:32:11.221 [http-8080-1] INFO test.MyServlet - WebappClassLoader
  context: /test
  delegate: false
  repositories:
     /WEB-INF/classes/
----------> Parent Classloader:
org.apache.catalina.loader.StandardClassLoader@630f41e9

最佳答案

这是 Linux 权限问题。某些目录缺少读取/执行权限。我在 I ran into more problems with that 时不小心修复了它.

关于java - 在 Tomcat 中找不到 logback.xml(或其他资源),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5736145/

相关文章:

java - JPA 检索所有引用的关系(ManyToMany - ManyToOne - OneToMany)

java - Web 应用程序稳定性的良好标准指标是什么?

java - JRE 如何拾取重复的类

java - 使用嵌入式 Jetty 提供的 GWT 前端运行 Java 守护进程

java - 在运行时在现有类中生成代码 (Java)

java - SonarQube Java Analyser,规则 S2183,我为什么要删除这个无用的移位?

java - 在 Eclipse : (java. lang.OutOfMemoryError 中增加堆空间

java - JAXB - 将带有命名空间的 XML 发送到 SpringBoot 中的 REST Controller

java - 服务器重启通知客户端

java - 对等方未在 Web 服务中进行身份验证?