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>
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.
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.
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
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.
J'ai eu ce problème, mais j'ai pu le résoudre:
C:\Program Files\Java\jdk1.8.0_91\jre\bin
(je travaille sur Win10)Le problème était sur la version 0.12.2 - 0.13.1 et il a totalement disparu.
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é.