2010-01-12 23 views

Trả lời

12

Bạn có thể làm điều đó theo hai cách:

1) Cast port-BindingProvider và chỉ định BindingProvider.ENDPOINT_ADDRESS_PROPERTY tài sản

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

2) Bạn có thể gọi các nhà xây dựng dịch vụ được tạo ra mà mất URL WSDL như tham số.

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

Bạn có thể làm điều đó tất cả từ hàm tạo của dịch vụ. JAX-WS sẽ tạo ra nhiều dạng khác nhau của hàm tạo cho bạn. Điều này về cơ bản giống như những gì được đề cập như là giải pháp # 2 trong câu trả lời của Chandra ở trên.

Tuy nhiên tôi không nghĩ rằng bạn muốn mã không gian tên và tên dịch vụ một lần nữa như được thực hiện trong câu trả lời. Chỉ cần làm:

 
URL wsdl = new URL("http://New.Endpoint/service?wsdl"); 
MyService wsService = new MyService(wsdlURL); 
Các vấn đề liên quan