Tôi đã sử dụng Netbeans để tạo mã máy khách Web Sevice từ url WSDL. Nhưng tôi không thể thay đổi địa chỉ điểm cuối tại thời gian chạy bằng mã.Thay đổi địa chỉ điểm cuối WebService tại thời gian chạy
Hãy giúp tôi giải quyết vấn đề đó!
Tôi đã sử dụng Netbeans để tạo mã máy khách Web Sevice từ url WSDL. Nhưng tôi không thể thay đổi địa chỉ điểm cuối tại thời gian chạy bằng mã.Thay đổi địa chỉ điểm cuối WebService tại thời gian chạy
Hãy giúp tôi giải quyết vấn đề đó!
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...;
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);