Cela faisait longtemps que je n'avais pas fait un billet sur les Web Services. En voici donc un pour créer facilement un client JAX-WS avec Maven.
Pour commencer, dans le fichier pom.xml, il faut y mettre les repositories Sun pour les dépendances JAX-WS et le plugin utilisé pour la génération de code :
maven-repository.dev.java.net Java.net Repository for Maven 1 http://download.java.net/maven/1/ legacy
maven2-repository.dev.java.net Java.net Repository for Maven 2 http://download.java.net/maven/2/
Par défaut, le goal wsimport génère le code pour les fichiers WSDL situé dans le répertoire src/wsdl. Nous allons donc mettre notre fichier wsdl dans ce répertoire(par exemple le addnumbers.wsdl des samples JAX-WS RI). La balise sourceDestDir permet de définir la destination du code généré. Par défaut, il est dans target/jaxws/wsimport/java.
Une seule dépendance suffit pour le client :
com.sun.xml.ws jaxws-rt 2.1.4 jar compile
Une simple commande mvn compile permet de générer le code et de le compiler. La génération de code ne se fait qu'une fois tant que le répertoire target/stale existe.
Il n'y a plus qu'à créer une classe de test pour faire l'appel WebService :