Есть ли какие-либо известные проблемы совместимости при запуске веб-приложения 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.

Другие вопросы по тегам