2008-09-16 5 views
56

(Eclipse 3.4, Ganymede)Eclipse - Как я могу изменить «грань проекта» от Tomcat 6 до Tomcat 5.5?

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

Это месяц или 2 по линии, и теперь я хотел бы изменить конфигурацию на 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»? Или, может быть, пролить свет на то, почему это произошло?

Благодаря
Пит

ответ

87

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

Открыть вид навигатора и найти, что есть папка .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"> 
+1

Спасибо. На самом деле я попробовал ваш хак, прежде чем я разместил вопрос - с частичным успехом. Когда я попытался запустить проект из Eclipse (под Tomcat 5.5), у меня появилось множество Исключений. Поэтому я запустил Eclipse, чтобы скопировать стопку Exception ... и это сработало! Любая идея, почему требуется взломать? – user13360

+0

Awesome. Этот ответ помог мне решить долговременную проблему. – SRy

+0

+1! Этот хак действительно работает :-) – Badal

0

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

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

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

+0

Ммм - немного странно (не говоря уже о раздражении). Во всяком случае, большое спасибо за ответ. – user13360

+1

Вы не можете сделать это иначе 2.4 -> 2.5: '( – scottyab

7

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

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

+1

Я сделал то же самое для своей проблемы в ** Eclipse Juno **, и он тоже работал там. Спасибо! – CatsAndCode

+0

Не нужно создавать Dynamic Web Project, чтобы сделать трюк, Eclipse Juno позволяет нам добавить грань. Затем щелкните правой кнопкой мыши Динамический веб-модуль и измените версию на 2.5. Первое OK может дать вам исключение NullPointerException, остаться моллюском и повторить попытку. –

0

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

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

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

5

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

0

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

-1

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

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

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

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

<faceted-project> 
    ... 
    <installed facet="jst.web" version="6.0"/> 
    ... 
</faceted-project> 

 Смежные вопросы

  • Нет связанных вопросов^_^