web-dev-qa-db-fra.com

Impossible de construire org.Apache.maven.plugin.war.util.WebappStructure car il n'a pas de constructeur no-args

[INFO] [war:war {execution: default-war}]
[INFO] Packaging webapp
[INFO] ------------------------------------------------------------------------
[ERROR] FATAL ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Cannot construct org.Apache.maven.plugin.war.util.WebappStructure as it does not have a no-args constructor
---- Debugging information ----
message             : Cannot construct org.Apache.maven.plugin.war.util.WebappStructure as it does not have a no-args constructor
cause-exception     : com.thoughtworks.xstream.converters.reflection.ObjectAccessException
cause-message       : Cannot construct org.Apache.maven.plugin.war.util.WebappStructure as it does not have a no-args constructor
class               : org.Apache.maven.plugin.war.util.WebappStructure
required-type       : org.Apache.maven.plugin.war.util.WebappStructure
path                : /webapp-structure
line number         : 1
-------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] Trace
com.thoughtworks.xstream.converters.ConversionException: Cannot construct org.Apache.maven.plugin.war.util.WebappStructure as it does not have a no-args constructor
---- Debugging information ----
message             : Cannot construct org.Apache.maven.plugin.war.util.WebappStructure as it does not have a no-args constructor
cause-exception     : com.thoughtworks.xstream.converters.reflection.ObjectAccessException
cause-message       : Cannot construct org.Apache.maven.plugin.war.util.WebappStructure as it does not have a no-args constructor
class               : org.Apache.maven.plugin.war.util.WebappStructure
required-type       : org.Apache.maven.plugin.war.util.WebappStructure
path                : /webapp-structure
line number         : 1
-------------------------------
    at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.Java:63)
    at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.Java:45)
    at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.Java:46)
    at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.Java:117)
    at com.thoughtworks.xstream.core.ReferenceByXPathMarshallingStrategy.unmarshal(ReferenceByXPathMarshallingStrategy.Java:29)
    at com.thoughtworks.xstream.XStream.unmarshal(XStream.Java:846)
    at com.thoughtworks.xstream.XStream.unmarshal(XStream.Java:833)
    at com.thoughtworks.xstream.XStream.fromXML(XStream.Java:781)
    at org.Apache.maven.plugin.war.util.WebappStructureSerializer.fromXml(WebappStructureSerializer.Java:73)
    at org.Apache.maven.plugin.war.AbstractWarMojo.buildWebapp(AbstractWarMojo.Java:404)
    at org.Apache.maven.plugin.war.AbstractWarMojo.buildExplodedWebapp(AbstractWarMojo.Java:375)
    at org.Apache.maven.plugin.war.WarMojo.performPackaging(WarMojo.Java:181)
    at org.Apache.maven.plugin.war.WarMojo.execute(WarMojo.Java:143)
    at org.Apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.Java:490)
    at org.Apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.Java:694)
    at org.Apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.Java:556)
    at org.Apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.Java:535)
    at org.Apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.Java:387)
    at org.Apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.Java:348)
    at org.Apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.Java:180)
    at org.Apache.maven.DefaultMaven.doExecute(DefaultMaven.Java:328)
    at org.Apache.maven.DefaultMaven.execute(DefaultMaven.Java:138)
    at org.Apache.maven.cli.MavenCli.main(MavenCli.Java:362)
    at org.Apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.Java:60)
    at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:57)
    at Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:43)
    at Java.lang.reflect.Method.invoke(Method.Java:601)
    at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.Java:315)
    at org.codehaus.classworlds.Launcher.launch(Launcher.Java:255)
    at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.Java:430)
    at org.codehaus.classworlds.Launcher.main(Launcher.Java:375)
Caused by: com.thoughtworks.xstream.converters.reflection.ObjectAccessException: Cannot construct org.Apache.maven.plugin.war.util.WebappStructure as it does not have a no-args constructor
    at com.thoughtworks.xstream.converters.reflection.PureJavaReflectionProvider.newInstance(PureJavaReflectionProvider.Java:59)
    at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.instantiateNewInstance(AbstractReflectionConverter.Java:257)
    at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.Java:124)
    at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.Java:56)
    ... 31 more
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4 seconds
[INFO] Finished at: Sat Sep 24 17:25:45 CEST 2011
[INFO] Final Memory: 15M/37M
[INFO] ------------------------------------------------------------------------

JDK: 1.7

Plugin de compilation Maven:  

<plugin>
    <groupId>org.Apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.3.2</version>
</plugin>

quand je lance l'installation cible ci-dessus l'erreur se produit, comment puis-je le résoudre?

90
TechFind

Peut-être une version de maven war plugin est-elle utilisée, ce qui ne fonctionne pas avec Java 7? Selon ce problème (qui décrit un problème similaire), la version 2.1.1 du plugin maven war devrait fonctionner.

Inclure les éléments suivants dans votre pom.xml 

<plugin>
    <groupId>org.Apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.1.1</version>
</plugin>
136
Raghuram

J'ai eu ce problème en faisant un mvn install. Je l'ai résolu en faisant d'abord un mvn clean, suivi d'un mvn install.

Utilisation de maven 2.1.1, JDK 1.7.0.45.

16
SebastianH

C'est confirmé: JDK7 avec Maven 2.x produira cette erreur.

J'utilise Maven 2.2.1 et JDK7 et j'ai cette erreur. J'ai changé le JDK en version 1.6 et tout fonctionne bien.

9
visu

Au lieu de changer les versions de JDK et Maven, essayez ceci:

<plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
        <source>1.7</source>
        <target>1.7</target>
    </configuration>
    <version>2.3.2</version>
</plugin>
8
Kresimir Plese

Confirmé, j'ai rencontré le même problème avec maven 3.0.2 et jdk 1.7.0_02. Après avoir fonctionné contre jdk 1.6.0_30, il a très bien compilé. 

5
Philip Rodrigues

Je ne pense pas que la version était le problème. J'ai résolu de supprimer mon dossier cible (car il contient webapp-cache.xml) et de réinstaller Maven.

4
J S

Cela semble définitivement lié aux versions de plugin, de bibliothèque et de langue incompatibles. 

Deux ans et deux versions de Java plus tard, j'ai eu la même erreur en effectuant un exemple de projet d'un livre plus ancien sur Spring et Hibernate. 

J'ai pu résoudre l'erreur en commentant toutes les balises de version pour Apache.maven.plugins et en définissant la version de Java sur 1.8. Cela m'a permis de savoir quelle était la version la plus récente et la plus complète des bibliothèques, avec le coût de certains avertissements de Maven sur le fait de ne pas avoir les balises de version. Si vous tenez aux avertissements, vous pouvez définir les balises de version sur la dernière version et les avertissements de Maven devraient disparaître.

J'ai exécuté mvn clean package puis juste mvn package.

<plugin>
     <groupId>org.Apache.maven.plugins</groupId>
     <artifactId>maven-war-plugin</artifactId>
<!-- <version>2.1-beta-1</version> -->
</plugin>
<plugin>
     <groupId>org.Apache.maven.plugins</groupId>
     <artifactId>maven-compiler-plugin</artifactId>
<!-- <version>2.1</version> -->
     <configuration>
          <source>1.8</source>
          <target>1.8</target>
     </configuration>
</plugin>
2
A. Rick

si vous utilisez jdk 1.6, merci de bien vouloir ajouter cette entrée de plugin à votre fichier pom.xml

<plugin>
    <groupId>org.Apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.0.2</version>
    <configuration>
        <source>1.6</source>
        <target>1.6</target>
        <compilerArgument>-Xlint:all</compilerArgument>
        <showWarnings>true</showWarnings>
        <showDeprecation>true</showDeprecation>
    </configuration>
</plugin>
2
Motilal Daravatu

Pour moi, changer de version de plugin n'a pas pu résoudre le problème et changer de version de JDK n'est pas sous mon contrôle.

Cependant, exécuter mvn clean avant mvn Tomcat6:deploy a résolu ce problème.

1
Yogesh Patil

J'ai eu ce problème avec mon Eclipse Kepler. Dès que je suis passé à 4.4 (Luna), tout est parti. Doit poser un problème avec Eclipse + maven embedded 

J'ai essayé les deux JDK 1.7 et 1.8. Aucune différence. 

0
jprism

Essayez de supprimer tout votre cache. Lorsque j'ai supprimé le dossier cible, cela fonctionne bien.

(Le dossier cible est l'endroit où maven met tout le code compilé)

0
Sachin Ambalkar

Assurez-vous que la version du JDK se trouve dans votre chemin de construction et que la version spécifiée dans la balise Source correspond. 

<plugin>
    <groupId>org.Apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.1</version>
    <configuration>
     **<source>1.7</source>**
       <target>1.7</target>
       <debug>true</debug>
    </configuration>
</plugin> `

J'ai eu le chemin de construction pointant vers jdk 1.7 et "1.6" dans la balise source, lorsque j'ai corrigé la version à 1.7 dans la balise source, le problème a été résolu.

Exécutez les paquets mnv clean et mvn.

0
vinay

J'obtenais la même erreur après avoir mis à niveau ma version Java de la version 8 à une version 8.x, je l'ai corrigée en allant à pom puis 1. clic droit> maven> ajouter un plugin 2. tapez org.Apache.maven puis recherchez war plugin ajoutez-le et enregistrez, puis nettoyez et installez. Ça devrait marcher.

0
Rajan Chauhan