Để làm rõ thêm ở đây, khi bạn tạo dịch vụ của mình, lớp dịch vụ sử dụng 'wsdlLocation' mặc định, được chèn vào nó khi lớp được xây dựng từ wsdl. Vì vậy, nếu bạn có một lớp dịch vụ được gọi là SomeService và bạn tạo một thể hiện như sau:
SomeService someService = new SomeService();
Nếu bạn nhìn vào bên trong SomeService, bạn sẽ thấy rằng hàm tạo trông giống như sau:
public SomeService() {
super(__getWsdlLocation(), SOMESERVICE_QNAME);
}
Vì vậy, nếu bạn muốn nó trỏ đến một URL khác, bạn chỉ cần sử dụng hàm tạo nhận đối số URL (có 6 hàm tạo để đặt qname và các tính năng). Ví dụ: nếu bạn đã thiết lập một bộ giám sát TCP / IP cục bộ đang lắng nghe trên cổng 9999 và bạn muốn chuyển hướng đến URL đó:
URL newWsdlLocation = new URL("http://theServerName:9999/somePath");
SomeService someService = new SomeService(newWsdlLocation);
và điều đó sẽ gọi hàm tạo này bên trong dịch vụ:
public SomeService(URL wsdlLocation) {
super(wsdlLocation, SOMESERVICE_QNAME);
}