我是 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());
}
}
任何帮助表示赞赏,如果需要,我可以提供任何其他代码。