Pregunta

(Eclipse 3.4, Ganímedes)

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".

Han pasado uno o dos meses 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).

He probado los siguientes pasos (sin éxito):

  • Yo seleccioné Targeted Runtimes bajo el proyecto Properties
    El Tomcat v5.5 La opción estaba deshabilitada y la interfaz de usuario mostró 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 Uninstall Facets... enlace.
    Bajo la Runtimes pestaña, sólo Tomcat 6 desplegado.
    Para Dynamic Web Module, seleccioné la versión 2.4 en lugar de 2.5.
    Bajo la Runtimes pestaña, Tomcat 5.5 ahora se muestra.
    Sin embargo, la interfaz de usuario ahora muestra este mensaje:
    Cannot change version of project facet Dynamic Web Module to 2.4.
    El Finish El botón estaba desactivado, así que llegué a un callejón sin salida.

PUEDO crear con éxito un NUEVO proyecto con una configuración de Tomcat v5.5.Sin embargo, por alguna razón, no me permite degradar un proyecto existente.

Como solución alternativa, creé un nuevo proyecto y copié los archivos fuente del proyecto anterior.No obstante, la solución fue bastante dolorosa y algo torpe.

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

Gracias
pete

¿Fue útil?

Solución

Esto es una especie de hackeo de eclipse y puedes tener problemas al hacerlo, pero esto debería funcionar:

Abra la vista del navegador y descubra que hay una carpeta .settings debajo de su proyecto, expándala y luego abra el archivo: org.eclipse.wst.common.project.facet.core.xml Deberías ver una línea que dice: <installed facet="jst.web" version="2.5"/> Cambie eso a 2.4 y guarde.

Solo asegúrese de que su proyecto no utilice nada específico para 2.5 y debería estar bien.

También verifique que su web.xml tenga 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">

Otros consejos

Puede que esto sea antiguo, pero lo intenté y encontré lo siguiente en eclipse Galilio.

Abra la vista del navegador y descubra que hay una carpeta .settings debajo de su proyecto, expándala y luego abra el archivo:org.eclipse.wst.common.project.facet.core.Elimine el contenido de este archivo y haga clic derecho en el proyecto y haga clic en propiedades.Vaya a Project Facats en la ventana emergente, allí podrá hacer clic en las pestañas de tiempo de ejecución y convertir su proyecto a la nueva faceta que desee.

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

Lo siento, parece que no puedo publicar un comentario sin suficiente representante, así que...

Creo que es demasiado difícil para eclipse degradarse de forma segura a un estándar inferior porque realmente no puede saber si ha usado algo del estándar web más nuevo.Entonces, si solo le permite hacer eso, su programa podría fallar en una versión anterior.

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

Puede intentar desmarcar la faceta, aplicar, cambiar el valor de la faceta y verificar.A mí me funciona en Eclipse Helios SR1.

Entonces la principal diferencia es que lo hago con el 'Módulo Web Dinámico'.

Espero que funcione para ti tambien.

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

Si está utilizando maven, puede generar la configuración de eclipse utilizando el complemento maven eclipse.

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

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

Su parámetro jst.web será 6.0

<faceted-project>
  ...
  <installed facet="jst.web" version="6.0"/>
  ...
</faceted-project>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top