web.xml è mancante e è impostato su true

Prendere in considerazione:

Inserisci qui la descrizione dell'immagine

Quando creo un semplice progetto Maven in Eclipse , visualizzo questo errore:

web.xml è mancante e è impostato su true

Come posso risolvere questo problema?

Puoi farlo anche in questo modo:

  1. Fare clic con il tasto destro del mouse su Deployment Descriptor in Project Explorer .
  2. Selezionare Genera Stub descrittore di distribuzione .

Genera cartella WEB-INF in src / main / webapp e un web.xml in esso.

inserisci la descrizione dell'immagine qui

Questo è un errore di battesimo. Dice che si aspetta un file web.xml nel tuo progetto perché si tratta di un’applicazione web, come indicato da war . Tuttavia, per le recenti applicazioni Web un file web.xml è totalmente opzionale. Maven ha bisogno di raggiungere questa convenzione. Aggiungi questo al tuo pom.xml per permettere a pom.xml di recuperare e non hai bisogno di aggiungere un web.xml inutile al tuo progetto:

    org.apache.maven.plugins maven-war-plugin 2.6  false     

Questa è una soluzione migliore rispetto all’aggiunta di un web.xml vuoto perché in questo modo il tuo prodotto finale rimane pulito, stai solo cambiando i parametri di costruzione.

Per altre versioni correnti di Maven puoi anche usare la versione più breve:

  false  

Se hai già web.xml sotto / src / main / webapp / WEB-INF ma ottieni ancora l’errore “web.xml è mancante ed è impostato su true”, puoi controllare se hai incluso / src / main / webapp in la fonte del tuo progetto.

Ecco i passaggi che puoi seguire:

  1. Puoi verificarlo facendo clic con il pulsante destro del mouse sul progetto e aprendo la finestra di dialogo Proprietà, quindi “Deployment Assembly”, in cui puoi aggiungere Folder / src / main / webapp. Salva l’impostazione, quindi,
  2. Vai al menu Eclipse Progetto -> Pulisci … e pulisci il progetto, e l’errore dovrebbe andare via.

(L’ho verificato con Eclipse Mars)

Ho lo stesso problema. Dopo aver studiato e googling, ho risolto il mio problema:

Fare clic con il tasto destro sulla cartella del progetto, andare su Java EE Tools , selezionare Generate Deployment Descriptor Stub . Questo creerà web.xml nella cartella src/main/webapp/WEB-INF .

Se si utilizza Spring Tool Suite, l’opzione per Generate Deployment Descriptor Stub viene spostata in Java EE Tools, pertanto:

  1. Fai clic con il tasto destro sul tuo progetto
  2. Seleziona Java EE Tools
  3. Selezionare l’ opzione Genera Stub descrittore di distribuzione

Questo creerà il file web.xml all’interno della cartella src / main / webapp / WEB-INF / e, naturalmente, rimuoverà l’errore dal file pom.xml di Maven.

inserisci la descrizione dell'immagine qui

Puoi anche fare ciò che è meno dettagliato

  false  

Eclipse riconosce la directory webapp predefinita errata. Pertanto dovremmo impostarlo chiaramente tramite maven-war-plugin .

    org.apache.maven.plugins maven-war-plugin 3.0.0  src/main/webapp     

Una volta salvata questa impostazione, l’errore non si verificherà mai se rimosso. (Non so spiegare perché)

Ho avuto lo stesso problema, anche se avevo la cartella 'src/main/webapp/WEB-INF/' con corretto web.xml .

Il problema è scomparso dopo aver ricreato (maven-> eclipse) la configurazione con Maven build.. Ho eseguito mvn 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 e il mio file web.xml esisteva. Era un progetto maturo (già schierato in produzione) che è stato colpito. Il mio problema era legato ai metadati di eclipse. Si è verificato un problema con uno dei file nella mia cartella .settings /, in particolare org.eclipse.wst.common.component è 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à di eclipse, ho ricevuto un errore che diceva “la pagina correntemente visualizzata contiene valori non validi”.

Fai questo:

Andare e fare clic con il pulsante destro del mouse su Deployment Descriptor e fare clic su Genera Stub descrittore di distribuzione.

Non ha senso creare un web.xml che solo Elcipse vuole, anche se non ce n’è bisogno. Questo è il caso se si dispone di servlet conatiner embedded o che vivono senza xml cfg come spring-boot. Hai appena scaricato JavaEE (roba inutile) in eclipse a livello di progetto o globale

 Eclipse/STS>Windows>Preferences>JavaEE>Doclet>Webdoclet> "uncheck" DeploymentDescriptor > OK 

Creare la cartella WEB-INF in src / webapp e includere quindi la pagina web.xml all’interno della cartella WEB-INF

Rimuovi i file da -web / .setting e -admin / .setting

1

Per Progetto con progetto presente in web.xml -> Proprietà -> Deployment Assembly, in cui è ansible aggiungere Folder src / main / webapp. Salva modifica. Pulisci il progetto per iniziare.

Per Project con web.xml non presente Imposta failOnMissingWebXml su false in pom.xml sotto tag properties.

Seleziona il tuo progetto e seleziona l’opzione “Deployment Descriptor” e quindi scegli “Genera stub descrittore di distribuzione”

Fare clic con il tasto destro del mouse sul progetto, selezionare Maven -> Aggiorna progetto … , quindi selezionare Force Update of Snapshots / Releases , quindi fare clic su OK . E ‘fatto!

Il passo di: selezionare il progetto e selezionare l’opzione “Descriptor di distribuzione” e quindi scegliere “Genera stub descrittore di distribuzione” funziona correttamente. Il problema è che non è sempre il caso che abbiamo bisogno di web.xml, quindi è meglio aggiungere false a pom.xml