2008-09-16 20 views
56

(Eclipse 3.4, Ganymede)Eclipse - ¿Cómo puedo cambiar un 'Project Facet' de Tomcat 6 a Tomcat 5.5?

Tengo un proyecto de Aplicación web dinámica existente en Eclipse. Cuando creé el proyecto, especifiqué 'Configuración predeterminada para Apache Tomcat v6' en el menú desplegable 'Configuración'.

Hace un mes o 2 en el futuro, y ahora me gustaría cambiar la configuración a Tomcat 'v5.5'. (Esta será la versión de Tomcat en el servidor de producción.)

me han tratado los siguientes pasos (sin éxito):

  • He escogido Targeted Runtimes el marco del Proyecto Properties
    La opción Tomcat v5.5 fue desactivada y La IU muestra este mensaje:
    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.
  • Luego hice clic en el enlace Uninstall Facets....
    En la pestaña Runtimes, solo se muestra Tomcat 6.
    Para Dynamic Web Module, seleccioné la versión 2.4 en lugar de 2.5.
    Debajo de la pestaña Runtimes, se muestra Tomcat 5.5.
    Sin embargo, la interfaz de usuario ahora aparece este mensaje:
    Cannot change version of project facet Dynamic Web Module to 2.4.
    El botón Finish fue desactivada - de modo que llegué a un callejón sin salida.

PUEDO crear satisfactoriamente un NUEVO proyecto con una configuración de Tomcat v5.5. Por alguna razón, sin embargo, no me permitirá degradar 'un Proyecto existente.

Para solucionar el problema, creé un nuevo proyecto y copié los archivos fuente del proyecto anterior. No obstante, el trabajo en conjunto fue bastante doloroso y algo torpe.

¿Alguien puede explicar cómo puedo 'degradar' la configuración del proyecto de 'Tomcat 6' a 'Tomcat 5'? ¿O quizás arrojar algo de luz sobre por qué sucedió esto?

Gracias
Pete

Respuesta

87

Esta es una especie de eclipse de la piratería y se puede obtener en problemas para hacer esto, pero esto debería funcionar:

Abra la vista del navegador y encontrar que hay una carpeta bajo su .settings proyecto, amplíelo y luego abra el archivo: org.eclipse.wst.common.project.facet.core.xml debería ver una línea que dice: <installed facet="jst.web" version="2.5"/> Cambie eso a 2.4 y guárdelo.

Solo asegúrate de que tu proyecto no esté usando nada específico para 2.5 y deberías estar bien.

también comprobar su web.xml tiene la configuración correcta:

<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

Gracias. En realidad, probé tu hack antes de publicar la pregunta, con éxito parcial. Cuando intenté ejecutar el proyecto desde Eclipse (en Tomcat 5.5) obtuve una gran cantidad de excepciones. Así que encendí Eclipse para copiar la pila de excepciones ... ¡y funcionó! ¿Alguna idea de por qué se requiere el truco? – user13360

+0

Impresionante ... Esta respuesta me ayudó a resolver problemas de larga duración. – SRy

+0

+1! Este truco realmente funciona :-) – Badal

0

En este momento parece que no puedo publicar un comentario sin suficiente Rep así que ...

Creo que es muy difícil para un eclipse degradarse de forma segura a un nivel inferior porque no se puede saber realmente si se ha utilizado algo del estándar web más nuevo. Entonces, si solo permite hacerlo, podría causar que su programa falle en una versión anterior.

Siempre puede ser compatible con versiones anteriores pero no compatible con versiones anteriores.

+0

Mmm - un poco extraño (sin mencionar molesto). De todos modos, muchas gracias por la respuesta. – user13360

+1

No puede hacerlo de la otra manera 2.4 -> 2.5: '( – scottyab

7

Esto puede ser viejo, pero probé y encontré lo siguiente en eclipse Galilio.

Abra la vista del navegador y encuentre que hay una carpeta .settings debajo de su proyecto amplíelo y luego abra el archivo: org.eclipse.wst.common.project.facet.core.Delete el contenido de este archivo y a la derecha haga clic en el proyecto y haga clic en Propiedades. Vaya a Project Facats en la ventana emergente, allí puede hacer clic en las pestañas de tiempo de ejecución y convertir su proyecto a la nueva faceta que desee.

+1

) Hice lo mismo para mi problema en ** Eclipse Juno ** y funcionó allí también. ¡Gracias! – CatsAndCode

+0

No necesita crear un Dynamic Web Project para hacer el truco, Eclipse Juno nos permite agregar una faceta. Luego, haga clic con el botón derecho en Dynamic Web Module y cambie la versión a 2.5. El primer OK puede darle una NullPointerException, permanecer almeja y volver a intentarlo. –

0

Puede tratar de desmarcar la faceta, aplicarla, cambiar el valor de la faceta y verificar. Funciona para mí en Eclipse Helios SR1.

Así que la diferencia principal es que lo hago con 'Dynamic Web Module'.

Espero que funcione para usted también.

5

si está utilizando Maven, luego cierre el eclipse, escriba >mvn eclipse:eclipse -Dwtpversion=2.0 y reinicie el eclipse.

0

Vi lo mismo, luego cambié el valor de la versión de la aplicación web en el web.xml. Hacerlo podría solucionar esto por ti.

-1

Si está utilizando maven, puede generar las configuraciones de eclipse utilizando el complemento maven eclipse.

Para la versión jst.web, el plugin Maven eclipse tiene en cuenta las dependencias del proyecto. Si usted tiene una dependencia servlet API definida:

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

parámetro Usted jst.web será 6,0

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