Respostas:
Você também pode fazer isso:
Ele irá gerar a pasta WEB-INF em src / main / webapp e um web.xml nela.
web.xml
arquivo desnecessário . Você deve corrigir esse problema ao criar a ferramenta (ou seja, maven).
Este é um erro grave. Ele diz que está esperando um arquivo web.xml no seu projeto porque é um aplicativo da web, conforme indicado por <packaging>war</packaging>
. No entanto, para aplicativos Web recentes, um arquivo web.xml é totalmente opcional. Maven precisa alcançar essa convenção. Adicione isso ao seu maven pom.xml
para permitir que ele se atualize e você não precisará adicionar um inútil web.xml
ao seu projeto:
<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 é uma solução melhor do que adicionar um vazio, web.xml
pois assim o seu produto final permanece limpo, você está apenas alterando os parâmetros de construção.
Para versões mais atuais do maven, você também pode usar a versão mais curta:
<properties>
<failOnMissingWebXml>false</failOnMissingWebXml>
</properties>
Interface WebApplicationInitializer
esta resposta é a abordagem correta. É a maneira sensata de resolver esse problema - não adianta adicionar as web.xml
etapas necessárias para viver sem ele!
<properties><failOnMissingWebXml>false</failOnMissingWebXml></properties>
é suficiente, em vez das definições de configuração mais detalhadas do plug-in.
Se você já tem web.xml sob / src / main / webapp / WEB-INF, mas você ainda receber erro "web.xml está em falta e é definido como verdadeiro", você pode verificar se você tiver incluído / src / main / webapp em a fonte do seu projeto.
Aqui estão as etapas que você pode seguir:
(Eu verifiquei isso com o Eclipse Mars)
Se você usar o Spring Tool Suite, a opção para Gerar Stub do Descritor de Implementação será movida em Java EE Tools, para que você:
Isso criará o arquivo web.xml dentro da pasta src / main / webapp / WEB-INF / e, é claro, removerá o erro do arquivo pom.xml do Maven.
Eu tenho o mesmo problema. Depois de estudar e pesquisar no Google, resolvi meu problema:
Clique com o botão direito do mouse na pasta do projeto, vá para Java EE Tools
, selecione Generate Deployment Descriptor Stub
. Isto irá criar web.xml
na pasta src/main/webapp/WEB-INF
.
Você também pode fazer isso menos detalhado
<properties>
<failOnMissingWebXml>false</failOnMissingWebXml>
</properties>
O Eclipse reconhece o webapp
diretório padrão incorreto . Portanto, devemos defini-lo 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>
Depois de salvar essa configuração, o erro nunca ocorrerá se for removido. (Não sei explicar o porquê.)
Eu tive o mesmo problema, mesmo tendo a 'src/main/webapp/WEB-INF/'
pasta correta web.xml
.
O problema desapareceu depois que eu recriei (maven-> eclipse) a configuração com Maven build..
eu executei
mvn eclipse:clean eclipse:eclipse
E então eu Maven -> Update Project
adicionava opções específicas do plugin (eclipse-> maven).
Encontrei esse problema apenas no eclipse, tudo funcionou bem na linha de comando do Maven e meu arquivo web.xml existia. Foi um projeto maduro (já implantado na produção) que foi impactado. Meu problema estava ligado aos metadados do eclipse. Houve um problema com um dos arquivos em minha pasta .settings /, especificamente o org.eclipse.wst.common.component havia sido alterado. Consegui restaurar este arquivo para sua versão anterior, o que resolveu o problema no meu caso.
Observe que a resposta de Yuci não funcionou para mim. Quando tentei clicar em Deployment Assembly nas propriedades do eclipse, recebi um erro que dizia "a página atualmente exibida contém valores inválidos".
Para o Project com web.xml, apresente Project -> Properties -> Deployment Assembly, onde você pode adicionar a pasta src / main / webapp. Salve as alterações. Limpe o projeto para começar.
Para Projeto com web.xml não presente Defina failOnMissingWebXml como false em pom.xml na marca de propriedades.
Faça isso:
Vá e clique com o botão direito do mouse em Deployment Descriptor e clique em Generate Deployment Descriptor Stub.
Não faz sentido criar um web.xml, apenas a elcipse deseja, mesmo que não seja necessário. Este é o caso se você tiver o servlet conatiner incorporado ou vivendo sem o xml cfg, como o spring-boot faz. O que você acabou de digitar JavaEE (coisas inúteis) em eclipse no nível do projeto ou global
Eclipse/STS>Windows>Preferences>JavaEE>Doclet>Webdoclet> "uncheck" DeploymentDescriptor > OK
Selecione seu projeto e selecione a opção "Deployment Descriptor" e, em seguida, escolha "Generate Deployment Descriptor stub"
A etapa de: Selecione seu projeto e selecione a opção "Deployment Descriptor" e, em seguida, escolha "Generate Deployment Descriptor stub" funciona bem. A questão é que nem sempre é necessário o web.xml; portanto, é melhor anexar false ao pom.xml
Clique com o botão direito do mouse no project --> New --> Other --> Standard Deployment Descriptor(web.xml)
depois pressione Next para criar uma WEB-INF
pasta com um web.xml
arquivo dentro.
É isso feito.
Crie a pasta WEB-INF no src / webapp e inclua a página web.xml dentro da pasta WEB-INF.
maven-war-plugin
. Este é um plug-in implícito, em que o valor padrão para essa propriedade de configuração é verdadeiro. Você precisa declará-lo explicitamente e definir a propriedade de configuração como false. Veja mais aqui . Ou você pode adicionar um web.xml vazio