Eclipse-как изменить "фасет проекта" с Tomcat 6 на Tomcat 5.5?
(В Eclipse 3.4, Ганимед)
у меня есть существующий проект динамического веб-приложения в Eclipse. Когда я создавал проект, я указал "конфигурация по умолчанию для Apache Tomcat v6" в раскрывающемся списке "конфигурация".
это месяц или 2 вниз по линии, и теперь я хотел бы изменить конфигурацию на Tomcat 'v5.5'. (Это будет версия Tomcat на производственном сервере.)
я попробовал следующие шаги (без успех):
- я выбрал
Targeted Runtimes
в рамках проектаProperties
TheTomcat 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
tab, толькоTomcat 6
отображается.
ДляDynamic Web Module
, Я выбрал версию2.4
на месте2.5
.
ПодRuntimes
tab,Tomcat 5.5
теперь отображается.
Однако теперь пользовательский интерфейс отобразил это сообщение:Cannot change version of project facet Dynamic Web Module to 2.4.
TheFinish
кнопка была отключена-поэтому я дошел до тупика.
я могу успешно создать новый проект с Tomcat v5.5 конфигурация. По какой-то причине, однако, это не позволит мне понизить существующий проект.
в качестве обходного пути я создал новый проект и скопировал исходные файлы из старого проекта. Тем не менее, работа была довольно болезненной и несколько неуклюжей.
может кто-нибудь объяснить, как я может ли "понизить" конфигурацию проекта с "Tomcat 6" до "Tomcat 5"? Или, может быть, пролить свет на то, почему это произошло?
спасибо
Пит!--15-->
7 ответов
это своего рода взлом eclipse, и вы можете попасть в неприятности, делая это, но это должно работать:
откройте вид навигатора и найдите, что есть .папка настроек в вашем проекте разверните ее, а затем откройте файл:org.eclipse.wst.common.project.facet.core.xml
вы должны увидеть строку, которая говорит:
<installed facet="jst.web" version="2.5"/>
Измените это на 2.4 и сохраните.
просто убедитесь, что ваш проект не использует ничего конкретного на 2,5 и вы должны быть хорошо.
также проверьте свой веб.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">
Это может быть старым, но я попытался и нашел следующее в eclipse Galilio.
откройте вид навигатора и найдите, что есть .папка настроек в проекте разверните ее, а затем откройте файл: org.затмение.wst.общий.проект.грань.ядро.Удалить содержимое этого файла и щелкните правой кнопкой мыши на проекте и выберите Свойства. Перейдите к Project Facats во всплывающем окне, где вы можете нажать на вкладки runtime и преобразовать свой проект в новый фасет, который вы хотите.
Если вы используете Maven, затем выключите eclipse, затем введите >mvn eclipse:eclipse -Dwtpversion=2.0
и перезапустите eclipse.
извините, кажется, я не могу опубликовать комментарий без достаточной репутации...
Я думаю, что eclipse слишком сложно безопасно деградировать до более низкого стандарта, потому что он не может знать, использовали ли вы что-то из нового веб-стандарта. Поэтому, если он просто позволяет вам сделать это, это может привести к сбою вашей программы в более старой версии.
вы всегда можете быть обратно совместимы, но не вперед совместимы.
вы можете попробовать снять флажок фасет, применить, изменить значение фасета и проверить. Он работает для меня в Eclipse Helios SR1.
таким образом, основное отличие заключается в том, что я делаю это с "динамическим веб-модулем".
Я надеюсь, что это сработает и для вас.
Я видел то же самое, затем я изменил значение версии веб-приложения в web.xml
. Это может все исправить.
Если вы используете maven, вы можете создать настройки eclipse с помощью плагина Maven eclipse.
для jst.веб-версия плагин Maven eclipse учитывает зависимости проекта. Если у вас определена зависимость API сервлета:
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>servlet-api</artifactId>
<version>6.0.32</version>
</dependency>
вы jst.веб-параметр будет 6.0
<faceted-project>
...
<installed facet="jst.web" version="6.0"/>
...
</faceted-project>