Risposte:
Puoi farlo anche in questo modo:
Si genererà WEB-INF cartella in src / main / webapp e un web.xml in esso.
web.xml
file non necessario . Dovresti invece risolvere questo problema nel tuo strumento di costruzione (ad es. Maven).
Questo è un errore maven. Dice che si aspetta un file web.xml nel progetto perché è un'applicazione Web, come indicato da <packaging>war</packaging>
. Tuttavia, per le applicazioni web recenti un file web.xml è totalmente facoltativo. Maven deve mettersi al passo con questa convenzione. Aggiungi questo al tuo Maven pom.xml
per consentire a Maven di raggiungerlo e non è necessario aggiungere un inutile web.xml
al tuo progetto:
<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>
Questa è una soluzione migliore rispetto all'aggiunta di un vuoto web.xml
perché in questo modo il tuo prodotto finale rimane pulito, stai solo cambiando i parametri di costruzione.
Per le versioni più attuali di Maven puoi anche usare la versione più breve:
<properties>
<failOnMissingWebXml>false</failOnMissingWebXml>
</properties>
Interface WebApplicationInitializer
questa risposta è l'approccio corretto. È il modo sensato per risolvere questo problema - inutile aggiungere il web.xml
dopo aver preso delle misure per vivere senza di esso!
Se hai già web.xml in / src / main / webapp / WEB-INF ma ricevi ancora l'errore "web.xml è mancante ed è impostato su true", puoi verificare se hai incluso / src / main / webapp in la fonte del tuo progetto.
Ecco i passaggi che puoi seguire:
(Ho verificato questo con Eclipse Mars)
Se si utilizza Spring Tool Suite, l'opzione per Genera stub descrittore di distribuzione viene spostata in Java EE Tools, quindi:
Ciò creerà il file web.xml nella cartella src / main / webapp / WEB-INF / e, naturalmente, rimuoverà l'errore dal file pom.xml di Maven.
Ho lo stesso problema. Dopo aver studiato e cercato su Google, ho risolto il mio problema:
Fare clic con il tasto destro sulla cartella del progetto, andare a Java EE Tools
, selezionare Generate Deployment Descriptor Stub
. Questo creerà web.xml
nella cartella src/main/webapp/WEB-INF
.
Puoi anche fare questo che è meno dettagliato
<properties>
<failOnMissingWebXml>false</failOnMissingWebXml>
</properties>
Eclipse riconosce la webapp
directory predefinita errata . Pertanto dovremmo impostarlo chiaramente entro 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>
Dopo aver salvato questa impostazione, l'errore non si verificherà mai se viene rimosso. (Non so spiegare perché.)
Ho avuto lo stesso problema, anche se avevo la 'src/main/webapp/WEB-INF/'
cartella corretta web.xml
.
Il problema è scomparso dopo che ho ricreato la configurazione (maven-> eclipse) con l'
Maven build..
esecuzionemvn eclipse:clean eclipse:eclipse
E poi ho usato Maven -> Update Project
per aggiungere (eclipse-> maven) opzioni specifiche del plugin.
Ho riscontrato questo problema solo in Eclipse, tutto ha funzionato bene nella riga di comando di Maven ed esisteva il mio file web.xml. Era un progetto maturo (già distribuito in produzione) che è stato influenzato. Il mio problema era legato ai metadati dell'eclissi. Si è verificato un problema con uno dei file nella mia cartella .settings /, in particolare org.eclipse.wst.common.component era stato modificato. Sono stato in grado di ripristinare questo file alla sua versione precedente, che ha risolto il problema nel mio caso.
Nota che la risposta di Yuci non ha funzionato per me, quando ho provato a fare clic su Deployment Assembly nelle proprietà eclipse, ho ricevuto un errore che diceva "la pagina attualmente visualizzata contiene valori non validi".
Per Progetto con web.xml presente Progetto -> Proprietà -> Deployment Assembly, dove è possibile aggiungere Cartella src / main / webapp. Salva modifica. Pulisci il progetto per iniziare.
Per Project con web.xml non presente Impostare failOnMissingWebXml su false in pom.xml sotto il tag properties.
Fai questo:
Andare e fare clic con il tasto destro su Descrittore distribuzione e fare clic su Genera stub descrittore distribuzione.
Non ha senso creare un web.xml, solo lo vuole elcipse, anche se non è necessario. Questo è il caso se si dispone di un conatiner servlet incorporato o se si vive senza xml cfg come fa Spring-Boot. Il solo diable JavaEE (roba inutile) in eclissi a livello di progetto o globale
Eclipse/STS>Windows>Preferences>JavaEE>Doclet>Webdoclet> "uncheck" DeploymentDescriptor > OK
Seleziona il tuo progetto e seleziona l'opzione "Descrittore distribuzione", quindi scegli "Genera stub descrittore distribuzione"
Il passaggio di: selezionare il progetto e selezionare l'opzione "Descrittore di distribuzione", quindi scegliere "Genera stub descrittore di distribuzione" funziona correttamente. Il problema è che non sempre abbiamo bisogno di web.xml, quindi è meglio aggiungere false a pom.xml
Fare clic destro su project --> New --> Other --> Standard Deployment Descriptor(web.xml)
quindi premere Avanti per creare una WEB-INF
cartella con un web.xml
file all'interno.
È fatto.
Crea la cartella WEB-INF in src / webapp e includi quindi la pagina web.xml nella cartella WEB-INF
maven-war-plugin
. Questo è un plugin implicito in cui il valore predefinito per quella proprietà di configurazione è vero. È necessario dichiararlo esplicitamente e impostare la proprietà di configurazione su false. Vedi di più qui . Oppure puoi aggiungere un web.xml vuoto