Это потенциально может.
Как правило, если вы зависите от версии Tomcat и ее среды исполнения, вам нужно будет указать область действия зависимости, как указано ниже, что по сути означает, что maven не будет ее упаковывать.с вашим приложением:
<dependency>
<groupId>com.abc.xyz</groupId>
<artifactId>runtimepackage</artifactId>
<version>1.2.3</version>
<scope>provided</scope>
</dependency>
Недавно я столкнулся с этой проблемой при использовании разных версий Jetty.Один пакет, который был определен как предоставленный, использовал Jetty 6, в то время как другой пакет, развернутый в этой среде выполнения, использовал Jetty 8.
- Jetty 6 использует servlet-api 2.5 (не имеет метода getHeaders ())
- Jetty 8 использует servlet-api 3.0 (имеет метод getHeaders ())
Мой модуль использовал Jetty 8 (следовательно, servlet-api 3.0) и вызывал getHeaders () изОбъект HttpServletRequest.Когда я бегал на месте, все было хорошо.Но при развертывании и вызове getHeaders () сработало исключение NoSuchMethod.Имейте в виду, что затем я изменил свою локальную настройку, чтобы более точно соответствовать настройкам среды, и смог воспроизвести проблему.
Надеюсь, что это имеет смысл и помогает