No se puede cambiar la versión del proyecto faceta Dynamic Web Module a 3.0?

Estoy usando maven para crear una aplicación web dinámica en Eclipse. Agregué algunas carpetas como src/test/java y src/test/resources . También cambié la biblioteca en Java Build Path para obtener JavaSE-1.7. Todo está bien hasta aquí.

Cuando intenté cambiar el Módulo web dynamic de Project Facet, algo salió mal. Cambié el Java a 1.7 en el mismo lugar. Y todavía me dijo, no puedo cambiar la versión del proyecto Dynamic Web Module a 3.0.

He cambiado todo lo que afectaría el cambio, creo.

web.xml mi web.xml

  Servlet 3.0 Web Application  

y luego solo Maven -> Actualizar proyecto …

Otra forma es editar el archivo de configuración faceta del proyecto en sí: org.eclipse.wst.common.project.facet.core.xml

Cambie la versión del módulo web dynamic en esta línea a 3.0 –

Y entonces:

  1. Haga clic derecho en el proyecto (en el panel Explorador de proyectos ).
  2. Seleccione Maven »Actualizar proyecto (o presione Alt + F5 )

Encontrará este archivo en el directorio .settings dentro del proyecto Eclipse.

Creo que tuve el mismo problema que tú. Mi web.xml tenía la versión 2.5 mientras el proyecto tenía (haga clic derecho en Proyecto-> Propiedades-> Plantillas del proyecto->) Dynamic Web Module 2.3.

Aunque traté de cambiar la versión de 2.3 a 2.5, ECLIPSE no lo permitía. Solución: eliminé la marca de verificación bajo el encabezado Módulo web dynamic, guardé y tuve Update Project. El despertar automático está entrando en la caja con la versión correcta. Yo uso Eclipse Kepler.

ps: mira los comentarios de Jonathan justo debajo, muy útiles.

Tuve el mismo problema e incluso intenté eliminar el proyecto y volver a agregarlo. ¿Cuál fue el truco para eliminar el directorio .settings .

  1. Haga clic en la carpeta de su proyecto.
  2. Vaya a Ventana> Mostrar vista> Navegador
  3. Ve a Navigator y expande la carpeta .settings
  4. Abra el archivo org.eclipse.wst.common.project.facet.core.xml

            
  5. Cambie la versión como esta

  6. Salvar
  7. Simplemente actualiza tu proyecto. Haga clic derecho en La carpeta del proyecto> Maven> Actualizar proyecto> Seleccione el proyecto y haga clic en “Aceptar”

Solo esto funcionó para mí.

Borrar

 .settings .classpatch .projejct target 

e importar de nuevo el proyecto maven.

Lo que funcionó para mí:

  1. Cambie Java a 1.8 (o 1.7)

En su POM, debe configurar el complemento del comstackdor en la versión 1.8 (o 1.7) en la sección :

   ...   org.apache.maven.plugins maven-compiler-plugin 3.6.0  1.8 1.8     

Asegúrese de que el cambio Java Build muestra 1.8. Si no es así, haga clic en EDITAR y seleccione lo que debería ser.

enter image description here

  1. Modifique web.xml para que se haga referencia a 3.0 en la versión y en el enlace

enter image description here

  1. Asegúrese de tener Java configurado en 1.8 en Project Facets

enter image description here

  1. En esta etapa, aún no pude cambiar Dynamic Web Module;

En lugar de cambiarlo:

a) desmarque el Módulo web dynamic

b) aplicar

c) verificarlo nuevamente. Se debe configurar una nueva versión 3.0. **

enter image description here

Después de aplicar y verificar nuevamente:

enter image description here

Espero que esto ayude.

Haga clic derecho en el proyectoPropiedades ; en Project Facets , anule la selección de Dynamic Web Module (la versión debe ser 3.1 ) y anule la selección de JavaServer Faces (la versión es 2.2 ).

Cambia esto:

  

a esto:

  

A continuación, elimine el prefijo antes de param-name y similares.

Finalmente, Maven -> Actualizar proyecto .

abra la vista del navegador y siga el paso

  1. (Ventana> Mostrar vista> Otro> General) y encuentra que hay una carpeta .settings debajo de su proyecto, amplíelo y luego abra el archivo “org.eclipse.wst.common.project.facet.core.xml”, haga la a continuación cambia y guarda el archivo.
  2. Cambie la versión del módulo web dynamic en esta línea a 2.5 –
  3. Cambie la versión de Java en esta línea a 1.5 o superior -.

Abra web.xml desde la estructura del proyecto http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd “version =” 3.0 “> Aplicación web Servlet 3.0

y actualice el archivo web.xml, por ejemplo change version = “2.5”

Cambie también el archivo org.eclipse.wst.common.project.facet.core.xml de su proyecto .settings file Siga los pasos 1. Ventana> Mostrar vista> Otro> General> Navigator

  1. Hay una carpeta .settings debajo de su directorio de proyectos

  2. Cambie la versión del módulo web dynamic en esta línea a 2.5 4. Cambie la versión de Java en esta línea a 1.5 o superior

Ahora actualice su proyecto y configúrelo para que se ejecute en su servidor.

Sigue el blog de la solución http://scrapillars.blogspot.in/2014/02/how-to-change-project-facet-in-eclipse.html

La solución se produce con ilustraciones de imágenes

Los mejores y simples pasos para resolver este problema para mí son 1) Propiedades -> Project Facets -> Deseleccionar / desmarcar la checkbox de Dynamic Web Module -> Aplicar 2) Ahora cambiar a la versión deseada Aplicar 3) Marque la checkbox Dynamic web Module .. – Ahora has terminado

Su es una forma más de resolver este problema (compruébalo espero que te ayude a resolver tu problema)

PROBLEMA

No se puede cambiar la versión del proyecto del módulo web dynamic faceta 2.3 a 3.0

SOLUCIÓN

  1. Vaya a la ubicación de su proyecto (por ejemplo, D: / maven / todo)
  2. ir a la carpeta .setting
  3. verifique este archivo: org.eclipse.wst.common.project.facet.core.xml
  4. abra el archivo y cambie la propiedad “jst.web” de 2.3 a 3.0, y guarde
  5. Haga clic derecho en el proyecto actualizar el proyecto y actualizar maven
  6. ¡¡¡Hecho!!!….

En mi caso, un dtd hizo referencia al web.xml. Después de cambiar esto a referencia xsd como el publicado por Sydney, funcionó.

El truco web.xml funciona porque ahora le está diciendo explícitamente a WTP que está utilizando esa versión de servlet específica, independientemente de lo que soporte el contenedor.

En mi caso, estoy usando la configuración de anotación dentro de un proyecto Maven y no tengo un archivo web.xml. Resulta que, en ausencia de un web.xml, WTP analiza sus dependencias de Maven para determinar qué versión de Servlet usar. En mi caso, yo había definido lo siguiente:

  javax javaee-api 7.0 provided  

Cambiarlo a 6.0 solucionó el problema y ahora está utilizando Servlet 3.0 en lugar de 3.1, que es el valor predeterminado para JavaEE 7. Como tenía que pasar de Tomcat 8 a Tomcat 7, Tomcat 7 solo es compatible con JavaEE 6 Web Profile. Ahora las cosas funcionan maravillosamente.

Tuve el mismo problema, editar web.xml y cambiar el archivo en la carpeta .settings por sí solo no me ayudó. Mi solución fue apuntar directamente al complemento comstackdor maven para usar la versión java deseada editando pom.xml:

   ...   maven-compiler-plugin 3.1  1.7 1.7     

Ahora ejecuta Maven-> Update project y luego puedes cambiar la versión de servlets en propiedades-> facetas de proyecto-> Dynamic Web module version o, como se escribió anteriormente, editando manualmente org.eclipse.wst.common.project.facet.core. xml en la carpeta .settings de tu proyecto.

Tuve el mismo problema, la eliminación de la carpeta .settings resolvió el problema

Mi solución al problema que no me permitió cambiar la versión del proyecto faceta Dynamic Web Module en Eclipse (Mars) fue:

  • Desactivar Maven Nature
  • Asegúrese de que los espacios de nombres web.xml apuntan a la versión correcta
  • Volver a habilitar Maven Nature
  • Maven »Actualizar proyecto (o presionar Alt + F5)

Si la respuesta de Sydney todavía no ayuda, intente a continuación. Después de seguir la respuesta de Sydney, vaya a Propiedades> Proyectos de facetas deseleccione el Módulo web dynamic y luego cambie la versión para que coincida con su web.config y luego seleccione de nuevo. Aplicar> Guardar luego actualización de Maven.

web.xml

  JavaServerFaces   javax.faces.PROJECT_STAGE Development    jsfs/hello.xhtml    Faces Servlet javax.faces.webapp.FacesServlet 1    Faces Servlet jsfs/*   Faces Servlet *.jsf   Faces Servlet *.faces   Faces Servlet *.xhtml  

Intenté muchas de las respuestas aquí, pero ninguna de ellas funcionó para mí. Luego encontré un artículo sobre mi problema aquí . Pensé en compartirlo aquí también.

A continuación se detallan los pasos en breve.

  1. Establezca el nivel de cumplimiento del comstackdor.
  2. Actualizar faceta del proyecto
  3. Actualice el JRE instalado de las preferencias
  4. Añadiendo configuración en pom.xml para usar java 1.7 y finalmente
  5. actualización de proyecto de Maven.

Para un proyecto web de maven eclipse, el cambio de la versión del módulo web dynamic debe verificar tres lugares. Si uno usa eclipse, y después de haber verificado lo siguiente: 1) web.xml

  

2) maven:

  javax.servlet javax.servlet-api 3.0.1 provided ## ensure you have tomcat 7 not other version   org.apache.maven.plugins maven-compiler-plugin 3.0  1.7 ## at least 6 1.7   

3) la ruta de comstackción de eclipse y la versión del comstackdor son 1.7

todavía tienes un marcador de error en maven:

 cannot change version of project facet dynamic web module to 3.0 one or more constrants have not been satisfied 

Luego puede: desmarcar el módulo web dynamic y volver a verificarlo. Creo que es porque .settings del archivo Eclipse está dañado de alguna manera. Acerca del segundo consejo Tomcat, cuya versión es una buena nota.

Hacer la actualización del maven o reimportar el proyecto no ayudó. @ La respuesta de Sydney es correcta; Además, tengo que recrear el proyecto en diferentes espacios de trabajo, como se dice en JavaServer Faces 2.2 requiere Dynamic Web Module 2.5 o posterior

Abra el archivo org.eclipse.wst.common.project.facet.core.xml y cambie la versión de jst.web a 3.0. También actualice el web.xml a la versión 3.0. Guarde y actualice el proyecto. Espero que esto ayude. Estoy usando Eclipse Juno

Esta es una variación de la respuesta de pagurix, pero usando Eclipse Mars.

Cambie su archivo web.xml a web.bak

Ignora los errores, lo regeneraremos a continuación.

Vaya a las propiedades del proyecto -> facetas del proyecto y configure la versión de Dynamic Web Module a lo que necesita. Eclipse ahora te permite guardar.

Ahora haz clic derecho en el proyecto. Elija Java EE Tools -> Generar Descriptor de Despliegue de Implementación.

Esto crea un nuevo web.xml con la versión requerida.

Abra el nuevo archivo web.xml y copie el encabezado XML y la etiqueta de apertura completa de la aplicación web en su web.bak original, elimine el nuevo archivo web.xml y cambie el nombre de web.bak de nuevo a web.xml.

Hecho.

El mío era Web Module 3.0 en web.xml , pero en properties>Dynamic Web Module Estaba en 3.1

Cambié el web.xml a esto:

   

después de este cambio, haga: right click on project>Maven>Update Project...

Este problema Con la versión, haga clic derecho en el proyecto-> Propiedades-> Proyecto Facetas-> haga clic derecho en Dynamic Web Module-> Desbloquearlo-> Desmarcar-> Seleccionar versión 2.5-> Aplicar-> Actualizar el maven

Resolví el problema al modificar web.xml con la versión correcta, las ubicaciones xsd y la modificación de org.eclipse.wst.common.project.facet.core.xml con la versión correcta y la actualización de maven .

la actualización de maven funcionó para mí

seleccionar proyecto luego presionar ALT + F5 luego seleccionar proyecto clic ok

Tuve el mismo síntoma con una cura diferente. Estaba intentando actualizar mi aplicación web JSF 2.2.4 / Spring 3.0 a JSF 2.3 para disfrutar de los nuevos ganchos JSF websocket allí y Eclipse (en realidad STS) no cooperaría. En Project Facets de Eclipse, JSF 2.3 nunca estuvo disponible hasta que edité directamente el archivo org.eclipse.wst.common.project.facet.core.xml como se indicaba en las respuestas anteriores; lo máximo que se obtendría fue 2.2.

Aquí están los aros que salté. No sé si todos estos fueron necesarios porque fundamentalmente no entiendo toda esta configuración.

En Eclipse recibí frecuentemente una alarmante advertencia: “Modificar un proyecto con facetas cuando las implementaciones de una o más facetas instaladas no están disponibles puede potencialmente resultar en un proyecto dañado. ¿Estás seguro de que deseas continuar?” Esto me impulsó a realizar confirmaciones más frecuentes, pero no se produjo ningún daño.

  1. Actualice JDK de 1.7 a 1.8 en POM, comstackdor de Eclipse y Eclipse Project Facets.
  2. Actualice las siguientes dependencias de Maven:

      javax.servlet servlet-api 2.4 provided  

    … a:

      javax.servlet javax.servlet-api 4.0.0 provided  

… y …

   com.sun.faces jsf-api 2.2.4   com.sun.faces jsf-impl 2.2.4  

… a:

   javax.faces javax.faces-api 2.3 provided   org.glassfish javax.faces 2.3.0   javax.enterprise cdi-api 2.0  

Tuve que actualizar mis declaraciones de espacios de nombres web.xml desde:

  

… a:

  

Tuve que actualizar Project Facets -> Dynamic Web Module de 2.5 a 3.0. Intenté 3.1 pero obtuve errores.

En este proceso, con frecuencia recibí el error en el título de esta publicación, “No se puede cambiar la versión del proyecto Facet Dynamic Web Module a 3.0” y Eclipse se negó a comstackr el proyecto u ofrecer JSF 2.3 en Project Facets. Cuando edité el archivo org.eclipse.wst.common.project.facet.core.xml como se indica, los errores desaparecieron, Eclipse ofreció JSF 2.3 en Project Facets, y el proyecto compiló y ejecutó bien en Tomcat 9.0.8. Sin embargo, Project Facets advirtió que “no se pudo encontrar la versión 2.3 del proyecto facet jst.jsf. La funcionalidad será limitada”. Sospecho que esto simplemente significa que la autocompletar y otras conveniencias de Eclipse no estarán disponibles porque no puede encontrar la implementación de JSF 2.3 declarada en mi POM.

Espero que esto ayude a alguien. Las búsquedas de Google arrojaron solo esta publicación de Ali Bassam e indirectamente de BalusC, que ayudó.