Tôi đang cố gắng khởi động/dừng dịch vụ web Điểm cuối trong một chuỗi riêng biệt từ chương trình chính của tôi bằng cách nhấp vào nút. Bắt đầu công việc tốt, tôi có thể truy cập tất cả các WebMethods của tôi mà không có vấn đề. Vấn đề là, khi tôi nhấp vào nút dừng để thử và dừng điểm cuối dịch vụ web, tôi nhận được một ngoại lệ và tôi không biết nó là gì. Tôi cũng mới sử dụng Java.Xuất bản và dừng dịch vụ web điểm cuối trong Java
Xin cảm ơn trước.
Excetion ném vào 'ep.stop()':
WebService Running On: http://0.0.0.0:9898/
Exception in thread "Thread-0" java.lang.NullPointerException
at com.sun.xml.internal.ws.transport.http.server.ServerMgr.removeContext(Unknown Source)
at com.sun.xml.internal.ws.transport.http.server.HttpEndpoint.stop(Unknown Source)
at com.sun.xml.internal.ws.transport.http.server.EndpointImpl.stop(Unknown Source)
at com.simba.Server.startWebSrv(Server.java:27)
at com.simba.Server.run(Server.java:13)
máy chủ lớp:
import javax.xml.ws.Endpoint;
public class Server extends Thread {
public volatile boolean active = true;
private Endpoint ep;
private String ip = "0.0.0.0";
public void run(){
ep = Endpoint.publish("http://" + ip + ":9898/", new SWS());
startWebSrv();
}
private void startWebSrv(){
synchronized(this){
try {
while (active) {
System.out.println("WebService Running On: http://" + ip + ":9898/");
wait();
}
}catch (InterruptedException e) {
e.printStackTrace();
}finally{
if(!active){
ep.stop();
System.out.println("WebService Stopped!");
}
}
}
}
}
Làm thế nào tôi đang cố gắng để ngăn chặn các dịch vụ/chủ đề từ chương trình chính của tôi:
MenuItem mntmToggleWebservice = new MenuItem(menu_4, SWT.NONE);
mntmToggleWebservice.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
synchronized(srv){
srv.active = false;
srv.notifyAll();
}
}
});
mntmToggleWebservice.setText("Toggle WebService");
này nên là câu trả lời, tôi đã sử dụng 0.0.0.0 và lỗi mang tôi đến đây. –