49 votes

L'attribut webxml est requis avec Servlet 3.0

Je reçois ce message d'erreur lorsque vous essayez de compiler un Vaadin GUERRE:

Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.1.1:war (default-war) on project testvaadin-web: Error assembling WAR: webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update mode) -> [Help 1]

Je sais que cette erreur signifie que maven ne trouve pas mon web.xml mais dans le "Livre de Vaadin" il est dit que web.xml n'est pas nécessaire lors de l'utilisation d'API Servlet 3.0 et l'Annotation @WebServlet dans votre INTERFACE utilisateur de la classe.

Je suis de la compilation de mon widgetsets dans un profil distinct (en fonction de ce guide) et il compile très bien lorsque je rnu ce profil. Cependant, quand je compile uniquement sur le web-projet, - je obtenir de l'erreur mentionnée ci-dessus.

Ce qui donne?

Puis-je remplacer le maven comportement en quelque sorte? Vaadin n'ai même pas créer un répertoire WEB-INF. Je suppose que je pourrais créer dossier WEB-INF et garder un "fantôme" web.xml afin de garder maven heureux, mais cela ne semble pas juste.

Ai-je raté quelque chose?

Quelqu'un sait-il une bonne solution?

Merci à l'avance!

108voto

Sergey Makarov Points 1006

Par défaut, maven-war-plugin échouera s'il ne trouve pas le fichier web.xml, voir ici . Si vous créez un projet Maven en utilisant le dernier archétype, vous définissez ce paramètre sur false:

   <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <configuration>
          <failOnMissingWebXml>false</failOnMissingWebXml>
        </configuration>
      </plugin>
    </plugins>
  </build>
 

Si vous souhaitez utiliser web.xml à la place des annotations, créez simplement WEB-INF / web.xml et définissez le servlet à cet emplacement. Voir Book of Vaadin pour des instructions détaillées.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X