首页 > 解决方案 > 配置 Tomcat Classloader 在其他位置之前查看随附的 jar 文件

问题描述

Tomcat 的默认类加载器对类路径(源)强制执行以下优先级

  • JVM 的引导类
  • /WEB-INF/Web 应用程序的类
  • /WEB-INF/lib/*.jar 您的 Web 应用程序
  • 系统类加载器类
  • 常见的类加载器类

我们可以通过启用委托来调整它context.xml

<Loader delegate="true"/>
  • JVM 的引导类
  • 系统类加载器类
  • 常见的类加载器类
  • /WEB-INF/Web 应用程序的类
  • /WEB-INF/lib/*.jar 您的 Web 应用程序

在这两种情况下,Web 应用程序都会在/WEB-INF/classes之后查看 Web 应用程序的 /WEB-INF/lib/*.jar

这对我来说很麻烦,因为我有 2 个罐子;

罐子 1

  • DoSomethingCool.java
  • doSomething-bean.xml
  • doSomething-property.properties

罐子 2

  • doSomething-bean.xml
  • doSomething-property.properties

出于某种原因,DoSomethingCool.java 正在从JAR2 > doSomething-bean.xml中选择 spring bean 定义而不是它自己的。

是否可以配置 tomcat 类加载器,以便类在查看其他位置之前先查看自己的 JAR?

标签: javaspringtomcatclasspath

解决方案


推荐阅读