2010-01-12 82 views

回答

12

你可以做到這一點有兩種方式:

1)鑄造portBindingProvider並指定BindingProvider.ENDPOINT_ADDRESS_PROPERTY財產

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

2)你可以調用生成的服務構造函數採用WSDL URL作爲參數。

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

你可以從你的服務的構造函數中完成這一切。 JAX-WS將爲您生成各種形式的構造函數。這與Chandra上述答案中的解決方案#2基本相同。

但是,我不認爲你想要再次編碼名稱空間和服務名稱,就像在答案中所做的那樣。簡單地做:

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