Maven utilisant JAX-WS 2.1 au lieu de JAX-WS 2.2
Je suis à l'aide de Netbeans 7 avec Maven 2.2.1 et jaxws-maven-plugin 1.12. Code est déployé sur Glassfish 3.1 - ou quand je vais le chercher à compiler 🙂
Quand j'ai construit la projet de, la wsimport s'exécute comme prévu et génère les fichiers source dans le WSDL fourni. Le problème est que l'échec de la construction au cours de la phase de compilation avec trois exceptions. À partir de cette recherche, je vois que ces constructeurs ont été ajoutés à partir de JAX-WS 2.1 de JAX-WS 2.2. Ma conviction est que l'wsimport est à l'aide de JAX-WS 2.1 et la compilation est à l'aide de JAX-WS 2.2.
Quelqu'un peut confirmer mes soupçons? Ou, si je me trompe, n'auriez-vous une idée de ce que peut être la cause?
Merci.
/MISE À JOUR DE LA CLARIFICATION DU PROBLÈME
Le service Web client extends javax.xml.ws.Le Service et l'erreur est renvoyée lorsque le client tente d'appeler le super constructeur de la classe avec trois arguments. Depuis la super-classe ne possède pas de constructeur avec trois arguments, il échoue.
javax.xml.ws.Le Service est trouvé dans le JDK SE 1,6 et JAX-WS 2.1 comme la mauvaise version.
javax.xml.ws.Le Service est trouvé dans JAX-WS 2.2 comme le version correcte.
L'erreur se produit trois fois depuis qu'il est dans les trois constructeurs surchargés mais c'est la même erreur, donc je l'ai inclus qu'une seule fois.
cannot find symbol
symbol : constructor Service(java.net.URL,javax.xml.namespace.QName,javax.xml.ws.WebServiceFeature[])
location: class javax.xml.ws.Service
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxws-maven-plugin</artifactId>
<version>1.12</version>
<executions>
<execution>
<goals>
<goal>wsimport</goal>
</goals>
<configuration>
<wsdlFiles>
<wsdlFile>*path to WSDL*</wsdlFile>
</wsdlFiles>
<wsdlLocation>*url to WSDL*</wsdlLocation>
<staleFile>${project.build.directory}/jaxws/stale/BudgetCheckingServiceService.stale</staleFile>
</configuration>
<id>wsimport-generate-BudgetCheckingServiceService</id>
<phase>generate-sources</phase>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>com.sun.xml.ws</groupId>
<artifactId>jaxws-tools</artifactId>
<version>2.2.6-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>javax.xml</groupId>
<artifactId>webservices-api</artifactId>
<version>1.4</version>
</dependency>
</dependencies>
<configuration>
<sourceDestDir>${project.build.directory}/generated-sources/jaxws-wsimport</sourceDestDir>
<xnocompile>true</xnocompile>
<verbose>true</verbose>
<extension>true</extension>
<catalog>${basedir}/src/jax-ws-catalog.xml</catalog>
</configuration>
</plugin>
source d'informationauteur Sean
Vous devez vous connecter pour publier un commentaire.
Comme vous pouvez le voir dans la jaxws-maven-plugin-1.12 pom duil a la dépendance jaxws-outils-2.1.7. Eh bien, vous avez dépassé par la pom. Mais, cette sur-équitation fonctionne tant que le sur-rode version 2.2.6-SNAPSHOT) est api-compatible avec le plugin de la version par défaut (2.1.7).
Clairement, selon vos observations, elles ne sont pas api-compatible. Donc, comme je vois que cela ne fonctionne pas. Ici'est une référence à suivre.
Exécuter mvn install avec l'option-X pour déterminer la version exacte de la jaxws-outils est utilisé par ce plugin. Faire un pastebin si vous n'avez pas l'esprit, alors nous pouvons avoir un regard trop!
EDIT: Une chose que vous pouvez faire est de; mettre à niveau le maven-jaxws-plugin jaxws-outils dep de la version de la vôtre. Et, ensuite de corriger les problèmes se produisent en raison de l'api-incompatibilité (comme constructeur de problèmes.) Puis envoyer un patch pour le en amont.
J'ai eu un problème similaire et il a été résolu en mettant le fichier
webservices-api.jar
dans mon%JDK_HOME%/jre/lib/endorsed
dossier.