Настройте Tomcat Classloader для просмотра вложенного файла JAR в других местах - PullRequest
0 голосов
/ 05 февраля 2019

Загрузчик классов по умолчанию Tomcat применяет следующий приоритет для пути к классам ( source )

  • Загрузочные классы вашей JVM
  • / WEB-INF/ классы вашего веб-приложения
  • / WEB-INF / lib / *. jar вашего веб-приложения
  • Классы загрузчика системных классов
  • Общие классы загрузчика классов

Мы можем настроить его, включив делегат в context.xml

<Loader delegate="true"/>
  • Загрузочные классы вашегоJVM
  • Классы загрузчика системных классов
  • Классы загрузчиков общих классов
  • / WEB-INF / классы вашего веб-приложения
  • / WEB-INF / lib / *. Jar вашего веб-приложения

В обоих случаях веб-приложение просматривает / WEB-INF / lib/*.jar вашего веб-приложения после / WEB-INF / classes .

Это неприятно для меня, потому что у меня есть 2 банки;

JAR 1

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

И

JAR 2

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

По некоторым причинам,DoSomethingCool.java выбирает определение пружинного компонента из JAR2> doSomething-bean.xml вместо своего собственного.

Можно ли настроить загрузчик классов tomcat так, чтобы класс смотрел в своем собственном JAR-файлесначала, прежде чем смотреть в других местах?

...