Я новичок в Jax-ws, и у меня есть простое клиент-серверное приложение. У меня есть интерфейс, класс планировщика, который его реализует, и класс издателя, который публикует мой планировщик на локальном хосте. Я сгенерировал заглушки и у меня есть клиент, который вызывает метод в моем планировщике. Пока нет проблем.
Проблема возникает, когда я хочу изменить свой класс планировщика. Если я просто сохраняю изменения и снова запускаю клиент, клиент использует старый планировщик. Если я попытаюсь опубликовать снова, я получу BindException, потому что порт уже используется (я знаю, что использую его!). Единственный обходной путь, который я нашел, — это публиковать каждый раз на другой порт и обновлять заглушки на новый порт, но это ужасное решение.
Есть ли более простой способ обновить код и заставить клиента использовать новые изменения?
Вот мой клиент:
package assignment2;
import assignment2.endpoint.SchedulerInterface;
import assignment2.endpoint.SchedulerService;
public class Client {
public static void main(String [] args){
SchedulerService service = new SchedulerService();
SchedulerInterface scheduler = service.getSchedulerPort();
System.out.println(scheduler.getSchedule("Tuesday"));
}
}
И мой издатель:
package assignment2;
import javax.xml.ws.Endpoint;
import assignment2.endpoint.Scheduler;
public class Publisher {
public static void main(String [] args){
Endpoint.publish("http://localhost:8082/WS/Scheduler", new Scheduler());
}
}
Любая помощь приветствуется, и я могу предоставить любой другой код, если это необходимо.