Respuestas:
También puedes hacerlo así:
Se generará WEB-INF carpeta en src / main / webapp y un web.xml en ella.
web.xml
archivo innecesario . En su lugar, debe solucionar este problema en su herramienta de compilación (es decir, maven).
Este es un error maven. Dice que espera un archivo web.xml en su proyecto porque es una aplicación web, como lo indica <packaging>war</packaging>
. Sin embargo, para aplicaciones web recientes, un archivo web.xml es totalmente opcional. Maven necesita ponerse al día con esta convención. Agregue esto a su maven pom.xml
para permitir que maven se ponga al día y no necesite agregar un inútil web.xml
a su proyecto:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
</build>
Esta es una mejor solución que agregar un vacío web.xml
porque de esta manera su producto final se mantiene limpio, solo está cambiando sus parámetros de compilación.
Para versiones más actuales de maven también puede usar la versión más corta:
<properties>
<failOnMissingWebXml>false</failOnMissingWebXml>
</properties>
Interface WebApplicationInitializer
esta respuesta, este es el enfoque correcto. Es la forma sensata de resolver este problema: ¡no tiene sentido agregar el web.xml
después de tomar medidas para vivir sin él!
<properties><failOnMissingWebXml>false</failOnMissingWebXml></properties>
suficientes en lugar de los ajustes de configuración de complementos más detallados.
Si ya tiene web.xml en / src / main / webapp / WEB-INF pero aún recibe el error "web.xml no se encuentra y está configurado como verdadero", puede verificar si ha incluido / src / main / webapp en la fuente de tu proyecto
Estos son los pasos que puede seguir:
(Verifiqué esto con Eclipse Mars)
Si usa Spring Tool Suite, la opción para Generar despliegue de descriptor de despliegue se mueve bajo Herramientas Java EE, por lo que usted:
Esto creará el archivo web.xml dentro de la carpeta src / main / webapp / WEB-INF / y, por supuesto, eliminará el error del archivo pom.xml de Maven.
Tengo el mismo problema. Después de estudiar y buscar en Google, he resuelto mi problema:
Haga clic derecho en la carpeta del proyecto, vaya a Java EE Tools
, seleccione Generate Deployment Descriptor Stub
. Esto creará web.xml
en la carpeta src/main/webapp/WEB-INF
.
También puedes hacer esto, que es menos detallado
<properties>
<failOnMissingWebXml>false</failOnMissingWebXml>
</properties>
Eclipse reconoce el webapp
directorio predeterminado incorrecto . Por lo tanto, debemos establecerlo claramente maven-war-plugin
.
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<webappDirectory>src/main/webapp</webappDirectory>
</configuration>
</plugin>
</plugins>
</build>
Una vez guardada esta configuración, el error nunca se producirá si se elimina. (No puedo explicar por qué)
Tuve el mismo problema, a pesar de que tenía la 'src/main/webapp/WEB-INF/'
carpeta correcta web.xml
.
El problema desapareció después de recrear la configuración (maven-> eclipse) con la
Maven build..
ejecuciónmvn eclipse:clean eclipse:eclipse
Y luego solía Maven -> Update Project
agregar (eclipse-> maven) opciones específicas del complemento.
Encontré este problema solo en eclipse, todo funcionó bien en la línea de comandos de Maven y mi archivo web.xml existía. Fue un proyecto maduro (ya desplegado en producción) que se vio afectado. Mi problema estaba relacionado con los metadatos del eclipse. Hubo un problema con uno de los archivos en mi carpeta .settings /, específicamente org.eclipse.wst.common.component había cambiado. Pude restaurar este archivo a su versión anterior, lo que resolvió el problema en mi caso.
Tenga en cuenta que la respuesta de Yuci no funcionó para mí, cuando intenté hacer clic en Ensamblaje de implementación en las propiedades del eclipse, recibí un error que decía "la página que se muestra actualmente contiene valores no válidos".
Para Proyecto con web.xml presente Proyecto -> Propiedades -> Ensamblaje de implementación, donde puede agregar Carpeta src / main / webapp. Guardar cambios. Limpia el proyecto para comenzar.
Para Proyecto con web.xml no presente Establezca failOnMissingWebXml en falso en pom.xml en la etiqueta de propiedades.
Hacer esto:
Vaya y haga clic derecho en Descriptor de implementación y haga clic en Generar código auxiliar de descriptor de implementación.
No tiene sentido crear un web.xml, solo elcipse lo quiere, aunque no sea necesario. Este es el caso si tiene un contenedor de servlet incrustado o vive sin xml cfg como hace spring-boot. Lo que acaba de marcar JavaEE (cosas inútiles) en eclipse a nivel de proyecto o global
Eclipse/STS>Windows>Preferences>JavaEE>Doclet>Webdoclet> "uncheck" DeploymentDescriptor > OK
Seleccione su proyecto y seleccione la opción "Descriptor de despliegue" y luego elija "Generar código auxiliar de Descriptor de despliegue"
El paso de: Seleccione su proyecto y seleccione la opción "Descriptor de despliegue" y luego elija "Generar código auxiliar de Descriptor de despliegue" funciona bien. El problema es que no siempre es el caso que necesitamos web.xml, por lo que es mejor agregar falso a pom.xml
Haga clic derecho en el project --> New --> Other --> Standard Deployment Descriptor(web.xml)
luego presione Siguiente , creará una WEB-INF
carpeta con un web.xml
archivo dentro.
Ya está hecho.
Cree la carpeta WEB-INF en src / webapp e incluya la página web.xml dentro de la carpeta WEB-INF y luego
maven-war-plugin
. Este es un complemento implícito donde el valor predeterminado para esa propiedad de configuración es verdadero. Debe declararlo explícitamente y establecer la propiedad de configuración en falso. Ver más aquí . O puede agregar un web.xml vacío