2009-11-03 5 views
10

J'ai déployé un service JAX-WS et utilisé wsimport pour générer le code client. Parce que je lance wsimport sur localhost, j'ai le code client avec binind sur l'adresse "localhost". Mais je veux réutiliser ce code client sur d'autres ordinateurs qui accèdent à mon service déployé avec une adresse IP publique y.y.y.y. Comment utiliser dynamiquement le code client généré (une fois) pour accéder à mon service. (L'ip de service peut changer ...)Client JAX-WS "portable"

Répondre

13

Ceci est couvert dans le FAQ de JAX-WS:

Q. Comment puis-je changer l'adresse de service Web dynamique pour une demande?

((BindingProvider)proxy).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "..."); 
6

Bien sûr. Jetez un oeil à la JBoss example. Voici l'extrait de code correspondant:

BindingProvider bp = (BindingProvider) port; 
bp.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "http://your.wsdl.location"); 

Habituellement, le WSDL est généré et therfore le fournisseur WS insère les URL pertinentes dans le WSDL.