Я обновляю свое основное приложение с Spring Boot 2.x до 3.x .
Обновление в основном успешное, за исключением вопроса о совместимости времени выполнения , вызванной 3-й стороны или устаревшими внутренними библиотеками, которые до сих пор зависят от Boot 2.x и Resttemplate api. /> Контекст:
[*] Мое основное приложение теперь использует:
Spring Boot: 3.x
[*] Spring Framework: 6.x
[*] jdk: 17 jdk: 17 />
[*] Однако у меня есть сотни общих SDK/библиотеки (некоторые внутренние, около 3-й стороны), которые:
Скомпилируется против boot 2.x
. org.springframework.web.client.resttemplate < /code> < /li>
Внутренний звонок:
org.springframework.http.client.ClientHttpResponse#getStatusCode()
< /code>
ожидает, что он вернет org.springframework.http.httpstatus < /code>. < /li>
< /ul>
< /li>
< /ul>
После обновления, я получаю следующую ошибку во время runTime:
. ‘Org.springframework.http.httpstatus org.springframework.http.client.clienthttpresponse.getStatuscode ()’
Это происходит внутри клиента. фрагмент из трассировки стека:
, вызванный: java.lang.nosuchmethoderror: ‘org.springframework.http.httpstatus org.springframework.http.client.clienthtpresponse.getstatuscode () com.legacy.sdk.interceptor.legacyInterceptor.Intercept (LegacyInterceptor.java:46)
at org.springframework.web.client.resttemplate.doexecute (Resttemplate.java:900) < /p>
Это имеет смысл, потому что Framebride 6.s. />Old (Spring Boot 2.x / Framework 5.x):
HttpStatus ClientHttpResponse.getStatusCode();
New (Spring Boot 3.x / Framework 6.x):
HttpStatusCode ClientHttpResponse.getStatusCode();
The old method was removed (not Установилось), поэтому библиотеки, ожидающие, что старая подпись будет разрушена. Любая официальная или рассмотренная стратегия, рекордная сообщество по запуску Spring Boot 2.x, скомпилированные SDK (которые полагаются на устаревшие/удаленные методы, такие как ClientHttpresponse#getStatuscode ()) внутри приложения Spring Boot 3?
Подробнее здесь: https://stackoverflow.com/questions/796 ... getstatusc
Обновление Spring Boot 3 вызывает nosuchmethoderror для clienthttpresponse.getstatuscode () - как поддержать Legacy Spri ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение