Eclipse - Как я могу изменить «Фасет проекта» с Tomcat 6 на Tomcat 5.5? - PullRequest
56 голосов
/ 16 сентября 2008

(Затмение 3.4, Ганимед)

У меня есть существующий проект Dynamic Web Application в Eclipse. При создании проекта я указал «Конфигурация по умолчанию для Apache Tomcat v6» в раскрывающемся меню «Конфигурация».

Это месяц или два в будущем, и теперь я хотел бы изменить конфигурацию на Tomcat 'v5.5'. (Это будет версия Tomcat на рабочем сервере.)

Я пробовал следующие шаги (без успеха):

  • Я выбрал Targeted Runtimes в рамках проекта Properties
    Параметр Tomcat v5.5 был отключен, и пользовательский интерфейс отобразил это сообщение:
    If the runtime you want to select is not displayed or is disabled you may need to uninstall one or more of the currently installed project facets.
  • Затем я щелкнул ссылку Uninstall Facets....
    На вкладке Runtimes отображается только Tomcat 6.
    Для Dynamic Web Module я выбрал версию 2.4 вместо 2.5.
    На вкладке Runtimes теперь отображается Tomcat 5.5.
    Тем не менее, пользовательский интерфейс теперь отображает это сообщение:
    Cannot change version of project facet Dynamic Web Module to 2.4.
    Кнопка Finish была отключена, поэтому я зашел в тупик.

Я МОГУ успешно создать НОВЫЙ проект с конфигурацией Tomcat v5.5. Однако по какой-то причине он не позволит мне понизить рейтинг существующего проекта.

В качестве обходного пути я создал новый проект и скопировал исходные файлы из старого проекта. Тем не менее, обходной путь был довольно болезненным и несколько неуклюжим.

Может кто-нибудь объяснить, как я могу «понизить» конфигурацию проекта с «Tomcat 6» до «Tomcat 5»? Или, возможно, пролить свет на то, почему это произошло?

Спасибо
Пит

Ответы [ 7 ]

87 голосов
/ 16 сентября 2008

Это своего рода хакерское затмение, и у вас могут возникнуть проблемы с этим, но это должно сработать:

Откройте представление навигатора и найдите, что в вашем проекте есть папка .settings, разверните ее и откройте файл: org.eclipse.wst.common.project.facet.core.xml вы должны увидеть строку, которая гласит: <installed facet="jst.web" version="2.5"/> Измените это на 2,4 и сохраните.

Просто убедитесь, что ваш проект не использует ничего особенного для 2.5, и вы должны быть хорошими.

Также проверьте, что ваш web.xml имеет правильную конфигурацию:

<web-app version="2.4" 
        xmlns="http://java.sun.com/xml/ns/j2ee" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
7 голосов
/ 01 марта 2010

Это может быть старым, но я попытался найти следующее в затмении Галилио.

Откройте представление навигатора и найдите, что в вашем проекте есть папка .settings, разверните ее и откройте файл: org.eclipse.wst.common.project.facet.core. Удалите содержимое этого файла и щелкните правой кнопкой мыши на проект и нажмите на свойства. Перейдите во вкладку Project Facats во всплывающем окне, где вы можете щелкнуть вкладки времени выполнения и преобразовать ваш проект в новый требуемый фасет.

5 голосов
/ 28 января 2011

если вы используете Maven, выключите затмение, затем наберите >mvn eclipse:eclipse -Dwtpversion=2.0 и перезапустите затмение.

0 голосов
/ 11 мая 2011

Если вы используете maven, вы можете сгенерировать настройки eclipse, используя плагин maven eclipse.

Для версии jst.web в подключении Maven eclipse учитываются зависимости проекта. Если у вас определена зависимость API сервлета:

<dependency>
    <groupId>org.apache.tomcat</groupId>
    <artifactId>servlet-api</artifactId>
    <version>6.0.32</version>
</dependency> 

Ваш параметр jst.web будет 6,0

<faceted-project>
  ...
  <installed facet="jst.web" version="6.0"/>
  ...
</faceted-project>
0 голосов
/ 06 апреля 2011

Я увидел то же самое, затем изменил значение версии веб-приложения в web.xml. Это может исправить это для вас.

0 голосов
/ 29 октября 2010

Вы можете попробовать снять фасет, применить, изменить значение фасета и проверить. У меня это работает в Eclipse Helios SR1.

Итак, главное отличие в том, что я делаю это с помощью «Динамического веб-модуля».

Я надеюсь, что это работает и для вас.

0 голосов
/ 17 сентября 2008

Извините, кажется, я не могу оставить комментарий без достаточного количества представителей, так что ...

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

Вы всегда можете быть обратно совместимыми, но не совместимыми вперед.

...