Tomcat версии 7.0 поддерживает только J2EE 1.2, 1.3, 1.4 и Java EE 5 и 6 веб-модулей

Я пытаюсь развернуть очень простой проект HTTPServlet, используя Tomcat 7 в моей перспективе Eclipse J2EE. Я получаю сообщение об ошибке "Tomcat версии 7.0 поддерживает только J2EE 1.2, 1.3, 1.4 и Java EE 5 и 6 Web-модулей". Я уже пробовал модифицировать свой файл org.eclipse.wst.common.project.facet.core.xml, как указано здесь, но это не похоже чтобы решить проблему. Я могу развернуть просто отлично, используя file- > export → . War непосредственно на мой установленный сервер tomcat. Любые идеи?

Ответы

Ответ 1

Tomcat не является сервером приложений, совместимым с Java EE, поэтому у вас не будет EJB или CDI из коробки. Вместо этого используйте JBoss Wildfly или TomEE, которые построены поверх tomcat. Или перейдите к полной реализации Java EE, например GlassFish.

Другой вариант может быть, если вы разворачиваете прямо в Tomcat. Eclipse по умолчанию развертывается в другой папке и использует какой-то обход, чтобы увидеть его развернутым на Tomcat. Выполните следующие действия:

  • В своем Eclipse перейдите к представлению "Серверы" (если он не отображается в среде IDE, перейдите в "Окно/Показать представление/Серверы" ), он покажет вам ваш сервер tomcat (и другие), дважды щелкните по нему.
  • В окне обзора Tomcat проверьте панель "Расположение серверов", разверните ее и проверьте, где развертывается webapp.
  • Если выбран вариант "Использовать Tomcat", то веб-приложение должно находиться в <tomcat>/webapps. Если нет, обязательно выберите эту опцию, и приложение будет непосредственно развернуто в папке Tomcat.

Ответ 2

Да, используя проект Maven, Spring с соблюдением Java EE, мы сталкиваемся с этой проблемой с Tomcat. Чтобы устранить эту проблему, выполните список команд, чтобы сделать проект совместимым с Java EE.

  • $ mvn eclipse:clean - очистить файлы затмения, такие как .project.classpath
  • $ mvn eclipse:eclipse -Dwtpversion=2.0, чтобы создать eclipse, совместимое с Java EE.

Наконец, откройте проект в eclipse, выберите сервер tomcat, который теперь запускается на серверах (Alt + Shift + x, R) выберите tomcat7.0 для запуска.

Ответ 3

Перейдите в "Свойства проекта" → "Границы проекта" и измените версию динамического веб-модуля. Если он установлен в 3.1, то измените его на 3.0. Если он не позволит вам изменить версию, снимите флажок и нажмите "Применить". Затем вы можете выбрать версию, проверить ее и применить-OK. Работал для меня!

Ответ 4

Если вы получаете "Tomcat версии 7.0 поддерживает только J2EE 1.2, 1.3, 1.4 и Java EE 5 и 6 веб-модулей" при попытке добавить проект в Tomcat 7. Просто,

Щелкните правой кнопкой мыши по проекту → перейдите к граням проекта → снимите флажок с веб-модуля dymanic (который должен быть равен 3.1) → apply → , затем измените динамический веб-модуль на 3.0 → , а затем спасти.

Попробуйте добавить сейчас, и он должен работать.

Ответ 5

Для Tomcat версии 6

В проекте, папка .settings ИЛИ Или CTRL + SHIFT + R:  найти этот файл

org.eclipse.wst.common.project.facet.core.xml

измените версию facet = jst.web на 2.4 или 2.5

Файл: org.eclipse.wst.common.project.facet.core.xml

<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
  <fixed facet="jst.java"/>
  <fixed facet="jst.web"/>
  <installed facet="jst.web" version="2.4"/>
  <installed facet="jst.java" version="6.0"/>
</faceted-project>

Tomcat 7 Вам понадобится фасет = "jst.web" version = "3.0" для развертывания на Tomcat 7.

Ответ 7

Я думал, что добавлю что-то к этому вопросу, поскольку я попробовал все вышеперечисленное и в итоге сделал что-то другое, чтобы решить мою проблему:

Tomcat версии 7.0 поддерживает только веб-модули J2EE 1.2, 1.3, 1.4 и Java EE 5 и 6

что также привело к

Невозможно изменить версию фасета проекта Dynamic Web Module на версию 3.0

В нашем проекте мы используем Maven для создания приложения Java 1.8/Tomcat 8.5 (которое поддерживает только Dynamic Web Module версии 3.0, но не 4.0)

Кто-то в нашей команде сделал следующее изменение в нашем родительском pom.xml

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

Версия была перенесена с 3.0.1 на 4.0.0, и независимо от того, сколько раз я пытался вручную перезаписать org.eclipse.wst.common.project.facet.core.xml с <installed facet="jst.web" version="3.0"/> версией <installed facet="jst.web" version="3.0"/> обновление Maven переписало его с 4.0.

Я установил версию 3.0.1, как показано ниже, и с тех пор мои аспекты проекта показывают правильную версию, мои приложения развертываются на моем внутреннем сервере Tomcat, и до сегодняшнего дня никто не собирается делать обновление для версия 4.0.0 :)

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

Ответ 8

Эту проблему можно решить, изменив версию Dynamic Web Module на 3.0. Это можно сделать двумя способами.

  1. Перейдите в свойства проекта и нажмите на фасеты проекта, теперь вы видите опцию Dynamic Web Module, измените ее на 3.0

  2. Для тех, кто не может изменить версию на предыдущем шаге, откройте org.eclipse.wst.common.project.facet.core.xml и измените здесь версию на что-то вроде <installed facet="jst.web" version="3.0"/>

Теперь перейдите к аспектам проекта и увидите, что версия Dynamic Web Module изменена на 3.0

Ответ 9

Чтобы решить эту проблему, вам нужно обновить версию Dynamic Web Module с 3.1 to 3.0. Eclipse не разрешает это обновление напрямую через Build Path-->Configure Build Path-->Project Facets.

Выполните следующие действия. Откройте файл: YourPrjectFolder/.setting/org.eclipse.wst.common.project.facet.core

  1. В папке проекта перейдите в папку .settings.
  2. Откройте org.eclipse.wst.common.project.facet.core XML-документ.
  3. Отредактируйте строку <installed facet="jst.web" version="3.1"/> в <installed facet="jst.web" version="3.0"/>
  4. Сохраните изменения.
  5. Перейдите на Eclipse и обновите проект.

Теперь вы сможете опубликовать свой проект на Tomcat 7.