обновить сервлет 4.0.1 до сервлета 5.0

avatar
Ashish Goyanka
9 августа 2021 в 05:22
1759
2
1

Я обновляю сервлет 4.0.1 до 5.0. Я использовал ниже зависимость maven для сервлета 4.0.1

<dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>4.0.1</version>
        <scope>provided</scope>
</dependency> 

Когда я обновляюсь до сервлета 5.0, я вижу, что существует новый термин «Джакарта», а servlet5 поставляется с Jakarta API со следующей зависимостью от maven.

<dependency>
  <groupId>jakarta.servlet</groupId>
  <artifactId>jakarta.servlet-api</artifactId>
  <version>5.0.0</version>
</dependency>

Итак, ниже приведены вопросы, которые я пытался найти в Интернете, но не смог найти

  1. Пожалуйста, объясните, что это за новый термин Джакарта, например, как это входит в картину?
  2. это единственный способ использовать Jakarta API для обновления сервлета 5.0. мы можем использовать старый «javax.servlet-api»?
  3. Я вижу, Джакарта тоже была там в версии 4.0, но мы ее не использовали. не имеет ли он никакой зависимости от сервлета 4.? https://mvnrepository.com/artifact/jakarta.servlet/jakarta.servlet-api
  4. Что еще нужно сделать для обновления сервлета 4.0 до версии 5.0?

Пожалуйста, также предложите любые документы для справки, если таковые имеются

Источник
chrylis -cautiouslyoptimistic-
9 августа 2021 в 05:32
0

Какие конкретно возможности вы хотите получить от Servlet 5?

Ashish Goyanka
9 августа 2021 в 05:37
0

Основной причиной перехода на сервлет 5.0 является Jetty11. потому что это необходимое условие Jetty11.

jwenting
9 августа 2021 в 08:29
0

@AshishGoyanka, тогда вам, вероятно, просто нужно изменить версию спецификации сервлета в ваших дескрипторах развертывания ...

Ответы (2)

avatar
Basil Bourque
9 августа 2021 в 08:14
6

Спецификация сервлета

Вы сказали:

Я обновляю сервлет 4.0.1 до 5.0.

В спецификации сервлета между версиями 4.0 и 5.0 нет существенных изменений, за исключением перехода с javax.* на jakarta.* именования пакетов.

Вы не выиграете от каких-либо новых функций или улучшений при переходе на Servlet 5 с Servlet 4.

Пристань

Вы прокомментировали:

Основной причиной перехода на сервлет 5.0 является Jetty11. потому что это необходимое условие для Jetty11.

Jetty 10 аналогичен Jetty 11, но имя пакета изменено с javax.* на jakarta.*. Две версии разрабатываются параллельно. В Jetty 11 нет лучших функций или улучшений по сравнению с Jetty 10.

(Кстати, то же самое для Apache Tomcat 9.x и Tomcat 10.0, параллельные версии для изменения имен пакетов.)

???? Если вы хотите быть консервативным на данный момент, придерживайтесь Jetty 10 и имени пакета javax.*. Если вы хотите подготовиться к будущему, используйте имя пакета Jetty 11 и jakarta.*.


Существует множество статей, презентаций и интервью о передаче Oracle Corp управления Java EE Eclipse Foundation и соответствующем изменении названия на Jakarta EE. Вам действительно следует провести базовое отраслевое исследование по этой теме Oracle-to-Jakarta, чтобы понять изменения. Начните с Википедии.

avatar
Karthikeyan
9 августа 2021 в 06:19
1
  1. Пожалуйста, объясните об этом новом термине Джакарта, например, как это входит в картину?

Oracle поддерживает Java EE, сентябрь 2017 г. Oracle объявила, что Java EE будет передана в Eclipse Foundation. «Java» является товарным знаком, принадлежащим Oracle, поэтому «Java EE» переименована в «Jakarta EE».

  1. это единственный способ использовать Jakarta API для обновления сервлета 5.0. мы можем использовать старый «javax.servlet-api»?
  2. Ясно, Джакарта тоже была в версии 4.0, но мы ее не использовали. не имеет ли он никакой зависимости от сервлета 4.? https://mvnrepository.com/artifact/jakarta.servlet/jakarta.servlet-api

Первый выпуск Jakarta EE 8, который включает Servlet 4.x и совместим с Java EE 8. И Java EE 8, и Jakarta EE 8 используют пространство имен javax.*.

Неважно, какой из них вы используете, оба будут работать друг с другом.

Что еще нужно сделать для обновления сервлета 4.0 до версии 5.0?

Чтобы перейти на Servlet 5.0, вы должны использовать Jakarta EE 9. Начиная с Jakarta EE 9, пространство имен изменено с javax.* на jakarta.*, поэтому вы должны изменить импорт всех javax.* пакетов на <82485808076278> пакеты.jakarta.* пакеты.jakarta.* пакеты. >

Кроме того, если вы используете какие-либо другие библиотеки, вы должны использовать совместимую версию.

Зависимость maven для Jakarta EE Web API следующая.

<dependency>
    <groupId>jakarta.platform</groupId>
    <artifactId>jakarta.jakartaee-web-api</artifactId>
    <version>9.1.0</version>
    <scope>provided</scope>
</dependency>

ССЫЛКА: Шаблон GitHup для Jakarta EE 9 Web