如何从GWT的客户端向服务器发送Exception对象?

时间:2012-01-25 06:20:36

标签: java gwt exception-handling

我正在尝试在服务器端记录客户端的异常。所以我需要将它们从客户端发送到服务器。

我为此目的创建了服务:

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。

2 个答案:

答案 0 :(得分:0)

GWT提供便于客户端loggingsupport的基础架构,用于将日志消息发送到服务器。它最初会使您的实现稍微复杂化,但可能会建立一种在您的应用程序中进行日志记录的方法。

答案 1 :(得分:0)

最后,我添加了gwt-log来记录服务器上的客户端异常。