您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

从Spring Boot 1.2升级到1.5.2之后,Tomcat 8.5启动期间出现FileNotFoundException

从Spring Boot 1.2升级到1.5.2之后,Tomcat 8.5启动期间出现FileNotFoundException

根据 ,Servlet 3.0规范要求在服务器启动期间进行Jar扫描。

Tomcat正在使用org.apache.tomcat.util.scan。为此目的使用StandardJarScanner

来自 的javadoc 。

认的JarScanner实现 目录,然后 提供的类加载器,然后处理类加载器层次结构。此实现足以 并提供许多Tomcat特定的扩展。扩展名是:

扫描类加载器层次结构(认情况下启用)测试所有文件以查看它们是否为JAR(认情况下禁用)

测试所有目录以查看它们是否是分解的JAR(认情况下处于禁用状态)

所有扩展 。

我们可以 此jar扫描。

我通过在application-xxx.properties文件添加以下属性来禁用它。该属性

# Comma-separated list of additional patterns that match jars to ignore for TLD scanning.    
server.tomcat.additional-tld-skip-patterns=*.jar

你可以找到 在这里

这些属性可用于配置 tomcat( Spring Boot)应用程序。

您可以按以下方式禁用 文件的JarScanner 。

@Bean
public EmbeddedServletContainerFactory embeddedServletContainerFactory() {
  return new TomcatEmbeddedServletContainerFactory() {
    @Override
    protected void postProcessContext(Context context) {
      ((StandardJarScanner) context.getJarScanner()).setScanManifest(false);
    }
  };
}

<Context>
  ...
  <JarScanner scanManifest="false"/>
  ...
</Context>

请参阅:

Java 2022/1/1 18:19:19 有620人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶