Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从GWT';s客户端到服务器?_Java_Gwt_Exception Handling - Fatal编程技术网

Java 如何从GWT';s客户端到服务器?

Java 如何从GWT';s客户端到服务器?,java,gwt,exception-handling,Java,Gwt,Exception Handling,我试图在服务器端记录客户端的异常。所以我需要将它们从客户端发送到服务器 我为此目的创建了服务: public interface LoggerService extends RemoteService { void logerror(Throwable e); } 在客户端,我使用GWT.setUncaughtExceptionHandler(uncaughtExceptionHandler): GWT.UncaughtExceptionHandler UncaughtExceptio

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

我为此目的创建了服务:

public interface LoggerService extends RemoteService {
    void logerror(Throwable e);
}
在客户端,我使用GWT.setUncaughtExceptionHandler(uncaughtExceptionHandler):

GWT.UncaughtExceptionHandler UncaughtExceptionHandler=new
GWT.UncaughtExceptionHandler(){
未授权例外情况下的公共无效(可丢弃的e){
loggerservicesync loggerService=GWT.create(loggerService.class);
loggerService.logerror(e,新的AsyncCallback(){
@凌驾
成功时公开作废(作废arg0){
SC.say(“记录客户错误”);
}
@凌驾
失败时公共无效(可丢弃arg0){
SC.say(“无法记录客户的错误”);
}
});  
}
};

当我使用托管模式时,它工作正常。但当我尝试使用web模式时,我的LoggerService无法工作。我知道在托管模式下,异常会从js“转换”为java。但我不明白为什么我的logerror(Throwable e)方法在web模式下根本不调用。服务器响应为200。

GWT提供了一种基础结构,方便客户端向服务器发送日志消息。开始时,这会使您的实现稍微复杂一些,但可能会建立一种跨应用程序进行日志记录的方法。

最后,我添加了用于在服务器上记录客户端异常的功能。

谢谢,明天将尝试此功能,看起来这就是我正在寻找的。是否有任何方法可以在web模式下使用GWT日志记录来获得“正常”的java stacktrace?
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");

                }
            });  
          }
        };