Есть ли какие-либо известные проблемы совместимости при запуске веб-приложения Vaadin 7/8 на выпущенном Tomcat 10?
Я хотел бы знать, есть ли в настоящее время какие-либо проблемы совместимости между версией 7/8 VAADIN и tomcat 10
1 ответ
tl; dr
- Tomcat 9 и 10 по сути одинаковы.
- Единственная разница заключается в именовании пакетов и соответственно.
- В настоящее время для Vaadin используйте Tomcat 9, а не 10.
То же самое для конкурентов Tomcat. Пример: используйте Jetty 10, а не 11.
Да, есть одна простая, но большая проблема.
Vaadin по-прежнему кодируется для именования пакетов технологий Java EE, на которых он построен. Это включает технологию сервлетов .
С передачей Oracle ответственности за технологии Java EE Eclipse Foundation названия этих технологий изменились с Java EE на Jakarta EE (Java™ является товарным знаком Oracle). В рамках этого перехода имена пакетов интерфейсов и классов, определенных в технологиях Jakarta EE, меняются с на.
Это новое имя пакета - серьезное изменение за все десятилетия программного обеспечения, написанного для Java EE. Это досадная проблема, но исправить ее очень просто: переименуйте строку пакета в верхней части всех исходных файлов.
Проект Jakarta EE сделал именно это в версии 9 Jakarta EE. У большинства соответствующих технологий были увеличены индивидуальные номера версий, но в остальном они практически такие же, как и их предыдущие версии (переименование их пакета - единственное существенное изменение). См. Информационный бюллетень за 2020 год от Eclipse Foundation, Understanding Jakarta EE 9 .
Сейчас у проекта Tomcat две параллельные версии: 9 и 10.
- Tomcat 9 использует старое именование пакетов:
- Tomcat 10 использует новое именование пакетов:
Оба развиваются одновременно; 10 не «лучше» 9.
Если вы запускаете новый проект и используете только библиотеки, которые изменили имя пакета, вы можете выбрать Tomcat 10.
Если вы используете библиотеки, которые еще не изменили имя пакета, используйте Tomcat 9. Vaadin - одна из таких библиотек, все еще использующих старое имя пакета.
➥ Итак, на данный момент ваши проекты Vaadin должны запускаться с версией 9 Tomcat, а не 10. Здесь никаких потерь, поскольку Tomcat 9 и 10 по сути одинаковы.
Нет необходимости срочно производить
javax.*
-к-
jakarta.*
перехода пока нет. В конце концов, я ожидаю, что мы увидим выпуски перехода Vaadin на новое именование пакетов. Говорят об инструментах, которые помогут с этим изменением, как в лагере Ваадин, так и в более широком мире Jakarta EE, хотя я не знаю об их текущем статусе.
Конечно, другие альтернативы / конкуренты Tomcat переживают те же трудности переходного периода. Например, Eclipse Jetty 11 использует новое именование пакетов, в то время как Jetty 10 находится в параллельной разработке с идентичным набором функций, как объясняется в этом сообщении WebTide. Если вы используете Jetty для разработки или развертывания Vaadin, вы будете использовать Jetty 10, а не 11.