2010-01-12 5 views

risposta

12

lo si può fare in due modi:

1) Cast port-BindingProvider e specificare BindingProvider.ENDPOINT_ADDRESS_PROPERTY proprietà

MyService service = new MyService(); 
MyPort port = service.... 
BindingProvider bindingProvider = (BindingProvider) port; 
bindingProvider.getRequestContext().put(
BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "http://New.Endpoint/service"); 

2) È possibile chiamare il costruttore di servizio generata che prende URL WSDL come parametro.

QName qname = new QName("http://serviceuri/", "service"); 
String wsdl = "http://New.Endpoint/service?wsdl"; 
MyServiec service = new MyServiec(new URL(wsdl), qname); 
MyPort port = check...; 
3

Si può fare tutto dal costruttore del servizio. JAX-WS genererà per te varie forme del costruttore. Questo è sostanzialmente lo stesso di quello che viene citato come soluzione n. 2 nella risposta di Chandra sopra.

Tuttavia, non penso che vogliate codificare lo spazio dei nomi e il nome del servizio ancora una volta come si fa in quella risposta. Semplicemente:

 
URL wsdl = new URL("http://New.Endpoint/service?wsdl"); 
MyService wsService = new MyService(wsdlURL);