web-dev-qa-db-fra.com

Problème maven lors de la tentative de génération d'un fichier WSDL

J'essaie de générer des sources à partir d'un fichier WSDL, mais je continue à rencontrer une erreur sur mon fichier pom.xml qui, à mon avis, pourrait être mon problème? Ci-dessous est l'erreur que je reçois de mon pom et mon fichier pom. De plus, je ne peux pas construire le projet avec "mvn clean install". Je semble juste avoir une erreur sans cause réelle.

L'erreur à la balise génère:

Execution default of goal org.jvnet.jaxb2.maven2:maven-jaxb2-plugin:0.12.3:generate failed: A required class was missing while executing org.jvnet.jaxb2.maven2:maven-jaxb2-plugin:0.12.3:generate: com/Sun/codemodel/CodeWriter
-----------------------------------------------------
realm =    plugin>org.jvnet.jaxb2.maven2:maven-jaxb2-plugin:0.12.3-715230752
strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
urls[0] = file:/C:/Users/Windows/.m2/repository/org/jvnet/jaxb2/maven2/maven-jaxb2-plugin/0.12.3/maven-jaxb2-plugin-0.12.3.jar
urls[1] = file:/C:/Users/Windows/.m2/repository/org/jvnet/jaxb2/maven2/maven-jaxb2-plugin-core/0.12.3/maven-jaxb2-plugin-core-0.12.3.jar
urls[2] = file:/C:/Users/Windows/.m2/repository/org/slf4j/slf4j-api/1.7.7/slf4j-api-1.7.7.jar
urls[3] = file:/C:/Users/Windows/.m2/repository/org/Apache/commons/commons-lang3/3.2.1/commons-lang3-3.2.1.jar
urls[4] = file:/C:/Users/Windows/.m2/repository/com/Sun/org/Apache/xml/internal/resolver/20050927/resolver-20050927.jar
urls[5] = file:/C:/Users/Windows/.m2/repository/junit/junit/4.8.1/junit-4.8.1.jar
urls[6] = file:/C:/Users/Windows/.m2/repository/org/codehaus/plexus/plexus-utils/1.5.15/plexus-utils-1.5.15.jar
urls[7] = file:/C:/Users/Windows/.m2/repository/org/jvnet/jaxb2/maven2/maven-jaxb22-plugin/0.12.3/maven-jaxb22-plugin-0.12.3.jar
urls[8] = file:/C:/Users/Windows/.m2/repository/org/glassfish/jaxb/jaxb-runtime/2.2.11/jaxb-runtime-2.2.11.jar
urls[9] = file:/C:/Users/Windows/.m2/repository/org/glassfish/jaxb/jaxb-xjc/2.2.11/jaxb-xjc-2.2.11.jar
urls[10] = file:/C:/Users/Windows/.m2/repository/org/Apache/maven/plugin-tools/maven-plugin-annotations/3.2/maven-plugin-annotations-3.2.jar
Number of foreign imports: 5
import: Entry[import org.sonatype.plexus.build.incremental from realm ClassRealm[plexus.core, parent: null]]
import: Entry[import org.codehaus.plexus.util.Scanner from realm ClassRealm[plexus.core, parent: null]]
import: Entry[import org.codehaus.plexus.util.DirectoryScanner from realm ClassRealm[plexus.core, parent: null]]
import: Entry[import org.codehaus.plexus.util.AbstractScanner from realm ClassRealm[plexus.core, parent: null]]
import: Entry[import  from realm ClassRealm[maven.api, parent: null]]

-----------------------------------------------------
 (org.jvnet.jaxb2.maven2:maven-jaxb2-plugin:0.12.3:generate:default:generate-sources)

mon fichier pom.xml: 

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.ws</groupId>
        <artifactId>spring-ws-core</artifactId>
    </dependency>
    <dependency>
        <groupId>com.bigthunk</groupId>
        <artifactId>BigThunkCore</artifactId>
        <version>0.0.7-SNAPSHOT</version>
    </dependency>
    <dependency>
        <groupId>com.bigthunk</groupId>
        <artifactId>BigThunkWeb</artifactId>
        <version>0.0.4-SNAPSHOT</version>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
        <!-- tag::wsdl[] -->
        <plugin>
            <groupId>org.jvnet.jaxb2.maven2</groupId>
            <artifactId>maven-jaxb2-plugin</artifactId>
            <executions>
                <execution>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <schemaLanguage>WSDL</schemaLanguage>
                <generatePackage>hello.wsdl</generatePackage>
                <forceRegenerate>true</forceRegenerate>
                <schemas>
                    <schema>
                        <url>http://172.19.137.21:8280/services/umarketsc?wsdl</url>
                    </schema>
                </schemas>
            </configuration>
        </plugin>
        <!-- end::wsdl[] -->
    </plugins>
</build>

<repositories>
    <repository>
        <id>project.local</id>
        <name>project</name>
        <url>file:${project.basedir}/repo</url>
    </repository>
    <repository>
        <id>spring-releases</id>
        <name>Spring Releases</name>
        <url>https://repo.spring.io/libs-release</url>
    </repository>
</repositories>
<pluginRepositories>
    <pluginRepository>
        <id>spring-releases</id>
        <url>https://repo.spring.io/libs-release</url>
    </pluginRepository>
</pluginRepositories>

13
javawocky

La balise <plugins> à l'intérieur de la balise <pluginManagement> (comme expliqué ici: Comment résoudre "L'exécution de plug-in non couverte par la configuration du cycle de vie" pour Spring Data Maven Builds ) a résolu le problème pour moi.

34
Simeon Leyzerzon

Changez votre chemin Java jre en votre chemin jdk et tout ira bien! Dans Eclipse, vous pouvez également remplacer votre "JRE installé" par votre jdk.

J'espère que cela fonctionnera pour vous.

9
martin

Dans mon cas, je l'ai corrigé en changeant la version de la spécification JAXB comme indiqué dans le wiki du plugin:

https://github.com/highsource/maven-jaxb2-plugin/wiki/Using-a-Specific-JAXB-Version

Soit en utilisant l'option de configuration spécVersion = 2.0 ou en utilisant le plugin spécifique à la version: maven-jaxb20-plugin

3
Alberto Velasco

Pour moi, il s’agit d’un problème d’environnement (exécution Java). Je pourrais résoudre un problème similaire provoqué par m2e dans mon contexte en lançant Eclipse dans l'invite de commande Windows: Eclipse.exe -vm "C:\Program Files\Java\jdk1.8.0_25\bin\javaw.exe" (assurez-vous que cela vient avant "-vmargs") Ensuite, j'ai essayé de nettoyer mon Eclipse.ini de la même manière pour lancer Eclipse à partir de l'Explorateur, cela fonctionne. Lorsque je regarde la commande Eclipse dans Javavisual VM, je vois à travers Jvisual vm qu'Eclipse a cette apparence.

Eclipse.commands=-os
win32
...
-vm "C:\Program Files\Java\jdk1.8.0_25\bin\javaw.exe"
-vm C:\Program Files\Java\jre1.8.0_25\bin\server\jvm.dll

La dernière ligne ne vient pas de mon fichier Eclipse.ini, mais a été ajoutée par le lanceur Eclipse. Dans les procédures système: Eclipse.vm = C:\Program Files\Java\jre1.8.0_25\bin\server\jvm.dll Cela ressemble à "lorsqu'il est lancé à partir d'Explorer", Eclipse luna ajoute le paramètre de jre trouvé sur le chemin PATH qui remplace Eclipse.ini ... Il doit exister une différence dans l'environnement pouvant prendre en compte le comportement différent du processus.

3
Ronan Fauglas

J'ai eu ce problème, mais j'ai pu le résoudre:

  1. J'ai supprimé TOUS les fichiers JRE simples (versions précédentes et actuelles)
  2. Ajouté à "Path" C:\Program Files\Java\jdk1.8.0_91\jre\bin (je travaille sur Win10)
  3. Profit.

Le problème était sur la version 0.12.2 - 0.13.1 et il a totalement disparu.

1
nEraquasAr

Ajouter

<dependency>
    <groupId>com.Sun.xml.bind</groupId>
    <artifactId>jaxb-impl</artifactId>
    <version>2.2.11</version>
</dependency>

à votre pom, il contient la classe manquante, avec ceci je l'ai corrigé.

0
Francesco Pitzalis