No se puede construir org.apache.maven.plugin.war.util.WebappStructure ya que no tiene un constructor sin argumentos


92
[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

Complemento del compilador de Maven:

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

cuando ejecuto el error de instalación de destino anterior, ¿cómo puedo resolverlo?


posiblemente golpear su versión xstream?
rogerdpack

Respuestas:


136

¿Quizás se está utilizando una versión del complemento de guerra de maven , que no funciona con Java 7? Según este problema (que describe un problema similar),2.1.1 versión del complemento maven war debería funcionar.

Incluya lo siguiente en su pom.xml

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.1.1</version>
</plugin>

pero no sé cómo aplicar ese parche
TechFind

@kasim. Respuesta actualizada para indicar cómo hacer esto.
Raghuram

Sigo recibiendo el mismo error, maven-war-plugin: 2.1.1 y Java 7. ¿Alguna idea? EDITAR: Parece que está arreglado para el objetivo de 'guerra', no para el objetivo 'explotado'. jira.codehaus.org/browse/MWAR-279
BrunoJCM

Problema visto en JRockIt JVM v1.6.0_6-R28.1.4-4.0.1. Se resuelve moviendo a la última versión de Java 6 JDK de Sun (u45).
8bitjunkie

4
Por ahora hay una versión 2.4 de maven-war-plugin que me resolvió el problema.
Benjamin Seiller

16

Tuve este problema al hacer un mvn install. Lo resolví haciendo una mvn cleanprimera, seguida de unamvn install .

Usando maven 2.1.1, JDK 1.7.0.45.


9

Está confirmado: JDK7 con Maven 2.x producirá este error.

Estoy usando Maven 2.2.1 y JDK7 y obtuve este error. Cambié el JDK a la versión 1.6 y está funcionando bien.


8

En lugar de cambiar las versiones de JDK y Maven, intente esto:

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

5

Confirmado, encontré el mismo problema con maven 3.0.2 y jdk 1.7.0_02. Después de ejecutarse contra jdk 1.6.0_30, se compiló bien.


4

No creo que la versión fuera el problema. Resolví eliminar mi carpeta de destino (porque contiene webapp-cache.xml) y volver a instalar Maven.


4

Apache Maven WAR Plugin 3.0.0 resolvió todos los problemas:

<artifactId>maven-war-plugin</artifactId>
<version>3.0.0</version>

No importa si usa jdk 1.6, 1.7 o 1.8


2

si usa jdk 1.6, agregue amablemente esta entrada de complemento a su 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>

Gracias, incluso agregar las opciones ayudó a curar la construcción :)
Guido U. Draheim

2

Esto definitivamente parece estar relacionado con versiones de complementos, bibliotecas e idiomas incompatibles.

Dos años, y dos versiones de Java más tarde, tuve este mismo error mientras hacía un proyecto de muestra de un libro anterior sobre Spring e Hibernate.

Pude resolver el error comentando todas las etiquetas de versión para apache.maven.plugins y estableciendo la versión de Java en 1.8. Esto me permitió saber cuál fue la última y mejor versión de las bibliotecas, con el costo de algunas advertencias de Maven sobre la falta de etiquetas de versión. Si le preocupan las advertencias, puede configurar las etiquetas de versión para que sean la última versión y las advertencias de Maven deberían desaparecer.

Ejecuté mvn clean packagey luego solo 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

Tuve este problema con mi eclipse Kepler. Tan pronto como me mudé a 4.4 (Luna), todo desapareció. Debe haber un problema con eclipse + maven integrado

Probé tanto JDK 1.7 como 1.8. Ninguna diferencia.


1

Para mí, cambiar la versión del complemento no pudo resolver el problema y cambiar la versión de JDK no está bajo mi control.

Sin embargo, ejecutar mvn cleanantes mvn tomcat6:deployresolvió este problema.


0

Asegúrese de que la versión de JDK en su ruta de compilación y la versión especificada en la etiqueta de origen coincidan.

<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> `

Tenía la ruta de compilación apuntando a jdk 1.7 y "1.6" en la etiqueta de origen, cuando corrigí la versión a 1.7 en la etiqueta de origen, el problema se resolvió.

Ejecute mnv clean y mvn package.


0

Intenta borrar todo tu caché. Cuando eliminé la carpeta de destino, funciona bien.

(La carpeta de destino es donde maven pone todo el código compilado)


0

Recibí el mismo error después de actualizar mi versión de java de 8 a 8.x, lo arreglé yendo a pom y luego 1. clic derecho> maven> agregar complemento 2. escriba org.apache.maven y luego busque war plugin agréguelo y guárdelo, luego limpie e instale. Deberia de funcionar.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.