Похоже, ваше приложение использует что-то на «внешнем» пути к классам (я назову это X) и передаю ему ссылку; это прекрасно работает, потому что "external" находится в родительском загрузчике классов для вашего приложения.
«X» затем использует ссылку, чтобы сделать что-то с пружиной. Однако spring находится на пути к классам вашего приложения, а X - на внешнем пути к классам. Поэтому пружина не видна Х, отсюда и ошибка.
Как вы обнаружили, добавление пружины во внешний путь к классам является правильным решением. Это также должно работать, если пружина находится как во внешних, так и в веб-приложениях.
Что такое «Х»? Наиболее вероятным кандидатом была бы регистрация общих ресурсов, у которой долгая история шумихи с загрузчиками классов. Возможно, вы захотите использовать вместо этого реализацию slf4j (например, Logback) и предоставить интерфейс ведения общего журнала через jcl-over-slf4j
Ресурсы: