我正在尝试在服务器端记录客户端的异常。所以我需要将它们从客户端发送到服务器。
我为此目的创建了服务:
public interface LoggerService extends RemoteService {
void logerror(Throwable e);
}
在客户端,我使用GWT.setUncaughtExceptionHandler(uncaughtExceptionHandler):
GWT.UncaughtExceptionHandler uncaughtExceptionHandler = new
GWT.UncaughtExceptionHandler() {
public void onUncaughtException(Throwable e) {
LoggerServiceAsync loggerService = GWT.create(LoggerService.class);
loggerService.logerror(e, new AsyncCallback<Void>() {
@Override
public void onSuccess(Void arg0) {
SC.say("Client's error logged");
}
@Override
public void onFailure(Throwable arg0) {
SC.say("Unable to log client's error");
}
});
}
};
当我使用托管模式时,它可以正常工作。但是,当我尝试使用Web模式时,我的LoggerService无法正常工作。我知道在托管模式下,异常“从js”转换为“java”。但我无法理解,为什么我的logerror(Throwable e)方法在Web模式下根本不会调用。服务器响应是200。