La création d'un web-service client directement à partir de la source
Je suis en train de générer la WS jar clients directement à partir de l' @Webservice classe(s).
Prenons cet exemple :
package com.example.maven.jaxws.helloservice;
import javax.jws.WebService;
@WebService
public class Hello {
public String sayHello(String param) {
; return "Hello " + param;
}
}
Je peux générer un fichier war et utiliser glassfish pour servir de ce webservice, et à partir de là, je peux utiliser glassfish URL WSDL pour générer le client sources.
Ce que je suis en train de faire est de passer la glassfish partie.
À partir de mon projet maven définir le webservice, je voudrais utiliser le jaxws-maven-plugin pour créer le client classes, mais je ne trouve aucun moyen de spécifier l'URL du webservice.
Il devrait être possible à droite?
@voir aussi La création d'un web-service client connu mais inaccessible wsdl
OriginalL'auteur ben | 2010-01-25
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser
<wsdlLocation>
option pour indiquer l'emplacement du service où le fichier WSDL va être disponible après le déploiement.Voir le post pour plus de détails.
OriginalL'auteur rochb
La création d'un client de service web application commence toujours avec un fichier WSDL existant (à la différence de l'élaboration d'un fournisseur de services web) et, même si ce n'est pas le seul moyen, je vous suggère d'utiliser le
wsimport
outil (voir 5 Techniques pour la Création de Java, Services Web à partir de WSDL pour les autres options, mais je ne vais pas couvrir).Donc, dans votre client de projet, ajoutez le code suivant à votre
pom.xml
:La
jaxws-maven-plugin:wsimport
mojo est lié par défaut à lagenerate-sources
phase du cycle de vie afin de l'exécution de la phase postérieure àgenerate-sources
va déclencher l'jaxws:wsimport
objectif.Remarque que c'est vraiment une configuration minimale. Si vous voulez plus de détails/de contrôle, consultez la documentation de l'
wsimport
mojo.Par exemple, pour utiliser des fichiers au lieu de les Url du WSDL (et de générer du code Java dans un endroit plus compatible avec maven meilleures pratiques), l'utilisation:
Mise à jour: D'invoquer un pré-configuré stub (à l'aide de l'adresse de point de terminaison du WSDL), le code est:
Pour invoquer un point de terminaison dont l'adresse est différente de celle spécifiée dans le fichier WSDL, définir la nouvelle URL du point de terminaison et le QName:
où
ORIGINAL_PACKAGE
est le paquet, où le service de publié en,SERVICENAME
est le nom du service que nous vous devons, par exemple,HelloService
.Cela a été si utile; merci beaucoup!
Lors de l'utilisation de
@WebService
avec le Métro, le WSDL généré lors de l'exécution, et est donc probablement pas disponibles au moment de la compilation.OriginalL'auteur Pascal Thivent