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 dinámico de Facetas de proyectos, algo salió mal. Había cambiado el Java a 1.7 en el mismo lugar. Y todavía me dijo que no puedo cambiar la versión del módulo web dinámico de faceta de proyecto a 3.0.
He cambiado todo lo que afectaría el cambio, creo.
Respuestas:
Actualicé mi
web.xml
y luego solo Maven -> Actualizar proyecto ...
fuente
Otra forma es editar el archivo de configuración de facetas del proyecto en sí:
org.eclipse.wst.common.project.facet.core.xml
Cambie la versión del módulo web dinámico en esta línea a 3.0 -
<installed facet="jst.web" version="2.5"/>
Y entonces:
Encontrará este archivo en el
.settings
directorio dentro del proyecto Eclipse.fuente
Creo que tuve el mismo problema que tú. Mi web.xml tenía la versión 2.5 mientras que el proyecto tenía el (clic derecho en Proyecto-> Propiedades-> Facetas del proyecto->) Módulo web dinámico 2.3.
Aunque intenté cambiar la versión de 2.3 a 2.5, ECLIPSE no lo permitió. Solución: eliminé la marca de verificación bajo el título Módulo web dinámico, guardé y tuve el Proyecto de actualización. Volver a despertar automáticamente es ingresar a la caja con la versión correcta. Yo uso Eclipse Kepler.
PD: mira los comentarios de Jonathan justo debajo, muy útil.
fuente
Abrir
org.eclipse.wst.common.project.facet.core.xml
archivoCambia la versión así
<installed facet="jst.web" version="3.1"/>
Solo esto me funcionó.
fuente
Tuve el mismo problema e incluso intenté eliminar el proyecto y agregarlo nuevamente. Lo que hizo el truco fue eliminar el
.settings
directorio.fuente
Eliminar
e importar de nuevo el proyecto maven.
fuente
Lo que funcionó para mí:
En su POM, debe configurar el complemento del compilador a la versión 1.8 (o 1.7) en la
<build>
sección:Asegúrese de que el cambio Java Build muestre 1.8. Si no es así, haga clic en EDITAR y seleccione lo que debería ser.
En lugar de cambiarlo:
a) desmarque el Módulo web dinámico
b) aplicar
c) verifíquelo nuevamente. Se debe configurar la nueva versión 3.0. **
Después de aplicar y verificarlo nuevamente:
Espero que esto ayude.
fuente
Haga clic derecho en el proyecto → Propiedades ; 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:
Luego elimine el prefijo anterior
param-name
y similares.Finalmente, Maven -> Actualizar proyecto .
fuente
abre la vista del navegador y sigue el paso
fuente
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 del archivo .settings de su proyecto. Siga los pasos 1. Ventana> Mostrar vista> Otro> General> Navegador
Hay una carpeta .settings debajo de su directorio de proyecto
Cambie la versión del módulo web dinámico 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 prepárese para ejecutarse en su servidor.
Siga el blog para encontrar 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.
fuente
Los mejores y simples pasos que resolvieron este problema para mí son 1) Propiedades -> Facetas del proyecto -> Deseleccionar / desmarcar la casilla de verificación del Módulo web dinámico -> Aplicar 2) Ahora cambie a la versión deseada Aplicar 3) Marque la casilla de verificación Módulo web dinámico .. --Ahora has terminado -
fuente
Es una forma más de resolver este problema (échale un vistazo y espero que te ayude a resolverlo).
PROBLEMA
No se puede cambiar la versión del módulo web dinámico de faceta de proyecto 2.3 a 3.0
SOLUCIÓN
fuente
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 admita 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 examina sus dependencias de Maven para determinar qué versión de Servlet usar. En mi caso, había definido lo siguiente:
Cambiarlo a 6.0 solucionó el problema y ahora usa Servlet 3.0 en lugar de 3.1, que es el valor predeterminado para JavaEE 7. Dado que tuve que pasar de Tomcat 8 a Tomcat 7, Tomcat 7 solo es compatible con el perfil web JavaEE 6. Ahora las cosas funcionan maravillosamente.
fuente
Tuve el mismo problema, editar web.xml y cambiar el archivo en la carpeta .settings solo no ayudó. Mi solución fue apuntar directamente el complemento del compilador maven para usar la versión deseada de Java editando pom.xml:
Ahora ejecute Maven-> Actualizar proyecto y luego puede cambiar la versión de los servlets en propiedades-> facetas del proyecto-> Versión del módulo web dinámico o, como se escribió anteriormente, editando manualmente org.eclipse.wst.common.project.facet.core. xml en la carpeta .settings de su proyecto.
fuente
En mi caso, el web.xml fue referenciado por un dtd. Después de cambiar esto a referencia xsd como el publicado por Sydney funcionó.
fuente
Tuve el mismo problema, eliminar la carpeta .settings resolvió el problema
fuente
Mi solución al problema que no me permitió cambiar la versión del módulo web dinámico de facetas del proyecto en Eclipse (Marte) fue:
fuente
Si la respuesta de Sydney todavía no ayuda, intente a continuación. Después de seguir la respuesta de Sydney, vaya a Propiedades> Facetas de proyectos deseleccione el Módulo web dinámico y luego cambie la versión para que coincida con su web.config y luego seleccione nuevamente. Aplicar> Guardar y actualizar Maven.
web.xml
fuente
Intenté muchas de las respuestas aquí, pero ninguna 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 dados brevemente.
fuente
Para un proyecto web de eclipse maven, el cambio de la versión del módulo web dinámico debe verificar tres lugares. Si uno usa eclipse, y después de haber verificado lo siguiente: 1) web.xml
2) maven:
3) la ruta de compilación de eclipse y la versión del compilador es 1.7
todavía tienes un marcador de error en maven:
Luego puede: desmarcar el módulo web dinámico y volver a marcarlo. Creo que es porque .settings del archivo eclipse está dañado de alguna manera. Sobre el segundo consejo tomcat qué versión es una buena nota.
fuente
Recibí este error cuando trato de convertir un Proyecto Java general a Proyecto Maven .
Lo que hice fue determinar la versión del compilador de Java que requiere mi proyecto. Para mi proyecto, la versión mínima de Java es
1.8
.Al reducir la versión a algo más bajo que
1.8
mi IDE, comenzaré a quejarme de que no reconoce un montón de bibliotecas importadas, por lo tanto, determino mi versión mínima de Java como1.8
Ahora asegúrese de que la versión del compilador de Java use la misma versión de Java que la que configuró en Project Facets.
Después de los cambios, el error debe resolverse. Si el error persiste, haga clic con el botón derecho en proyecto -> Maven -> Actualizar proyecto
fuente
Hacer la actualización de Maven o reimportar el proyecto no ayudó. La respuesta de @ Sydney es correcta; Además, tengo que recrear el proyecto en un espacio de trabajo diferente como se dijo en JavaServer Faces 2.2 requiere Dynamic Web Module 2.5 o posterior
fuente
Abra el archivo org.eclipse.wst.common.project.facet.core.xml y cambie la versión jst.web a 3.0. También actualice el web.xml a la versión 3.0. Guarda y actualiza el proyecto. Espero que esto ayude. Estoy usando Eclipse Juno
fuente
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 haga clic derecho en el proyecto. Elija Java EE Tools -> Generar despliegue del descriptor de despliegue.
Esto crea un nuevo web.xml con la versión requerida.
Abra el nuevo 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 web.xml y cambie el nombre de web.bak a web.xml.
Hecho.
fuente
El mío estaba
Web Module 3.0
adentroweb.xml
, pero adentroproperties>Dynamic Web Module
estaba encendido3.1
Cambié el
web.xml
a esto:después de este cambio, haga:
right click on project>Maven>Update Project...
fuente
Este problema con la versión, haga clic con el botón derecho en el proyecto-> propiedades-> Facetas del proyecto-> haga clic con el botón derecho en Dynamic Web Module-> desbloquearlo-> desmarcar-> seleccione la versión 2.5-> Aplicar-> Actualizar el maven
fuente
Resolví el problema modificando web.xml con la versión correcta, ubicaciones xsd y modificando org.eclipse.wst.common.project.facet.core.xml con la versión correcta y haciendo la actualización de Maven .
fuente
actualizar Maven funcionó para mí
seleccione proyecto luego presione ALT + F5 luego seleccione proyecto haga clic en Aceptar
fuente
Tuve el mismo síntoma con una cura diferente. Intenté actualizar mi aplicación web JSF 2.2.4 / Spring 3.0 a JSF 2.3 para disfrutar de los nuevos enganches 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 indicó en las respuestas anteriores: el máximo que alcanzaría fue 2.2.
Aquí están los aros por los que salté. No sé si todo esto era necesario porque básicamente no entiendo toda esta configuración.
En Eclipse recibí con frecuencia una advertencia aterradora: "Modificar un proyecto facetado cuando las implementaciones de una o más facetas instaladas no están disponibles puede resultar en un proyecto dañado. ¿Está seguro de que desea continuar?" Esto me llevó a hacer compromisos más frecuentes, pero no se produjo corrupción.
Actualice las siguientes dependencias de Maven:
... a:
... y ...
... a:
Tuve que actualizar mis declaraciones de espacio 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 frecuentemente recibí el error en el título de esta publicación, "No se puede cambiar la versión del módulo web dinámico de faceta de proyecto a 3.0" y Eclipse se negó a compilar el proyecto u ofrecer JSF 2.3 en las facetas del proyecto. Cuando edité el archivo org.eclipse.wst.common.project.facet.core.xml según lo indicado, los errores desaparecieron, Eclipse ofreció JSF 2.3 en Project Facets, y el proyecto se compiló y funcionó bien en Tomcat 9.0.8. Sin embargo, Project Facets todavía advirtió "No se pudo encontrar la implementación de la versión 2.3 del proyecto facet jst.jsf. La funcionalidad será limitada". Sospecho que esto simplemente significa que el autocompletado y otras comodidades 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 en Google arrojaron solo esta publicación de Ali Bassam e indirectamente BalusC que ayudó.
fuente
Tuve el mismo problema: acabo de eliminar el proyecto de mi espacio de trabajo, luego limpié los "archivos / carpetas eclipse, por ejemplo: .project, .settings, etc.) y luego importé el proyecto maven nuevamente, funcionó.
fuente