OMI, le fournisseur est en train de vous dire de changer de point de terminaison de service (c'est à dire où à atteindre le service web), pas le client endpoint (je ne comprends pas ce que cela pourrait être). Pour modifier le point de terminaison de service, en gros, vous avez deux options.
Utiliser la Liaison Fournisseur pour définir l'URL du point de terminaison
La première option consiste à modifier l' BindingProvider.ENDPOINT_ADDRESS_PROPERTY
la valeur de la propriété de l' BindingProvider
(tous les proxy implémente javax.xml.ws.BindingProvider
interface):
...
EchoService service = new EchoService();
Echo port = service.getEchoPort();
/* Set NEW Endpoint Location */
String endpointURL = "http://NEW_ENDPOINT_URL";
BindingProvider bp = (BindingProvider)port;
bp.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, endpointURL);
System.out.println("Server said: " + echo.echo(args[0]));
...
L'inconvénient est que cela ne fonctionne que lorsque l'original WSDL est toujours accessible. Pas recommandé.
Utiliser le WSDL pour obtenir l'URL du point de terminaison
La deuxième option est d'obtenir l'URL du point de terminaison du WSDL.
...
URL newEndpoint = new URL("NEW_ENDPOINT_URL");
QName qname = new QName("http://ws.mycompany.tld","EchoService");
EchoService service = new EchoService(newEndpoint, qname);
Echo port = service.getEchoPort();
System.out.println("Server said: " + echo.echo(args[0]));
...