执行在Cookies.getCookie()调用上停止,没有异常

时间:2014-12-23 21:07:38

标签: gwt cookies

我试图在服务器端实现类中读取Cookie值。经过一些调试后,我的代码现在看起来像这样:

logger.info("Initiating login");

String oracleDad;

try {
    logger.info("inside try");
    oracleDad = Cookies.getCookie("dad");
    logger.info("Read dad from cookie: " + oracleDad);
} catch (Exception e) {
    logger.error("Failed to read dad from cookie", e);
    oracleDad = "gtmd";
}

当我执行此代码时,我的onFailure块被触发,状态代码为Exception:

  

com.google.gwt.user.client.rpc.StatusCodeException:500电话   在服务器上失败;有关详细信息,请参阅服务器日志

服务器上的日志输出如下所示:

[INFO] c.g.e.server.rpc.MyProjectImpl - Initiating login
[INFO] c.g.e.server.rpc.MyProjectImpl - inside try

在Cookies.getCookie()调用之后,记录器,INFO或ERROR都不可能触发?我希望通过添加catch(例外e),我会得到一些错误消息,解释代码失败的原因。但执行似乎无声无息。

我正在使用com.google.gwt.user.client.Cookies。我认为客户端代码可以在服务器上运行,反之亦然。那是对的吗?还有其他我想念的东西吗?

1 个答案:

答案 0 :(得分:1)

  

我正在使用com.google.gwt.user.client.Cookies。我认为客户端代码可以在服务器上运行,反之亦然。那是对的吗?还有其他我想念的东西吗?

不,这是不对的,是的,你有一些缺失:服务器代码无法在客户端上运行,客户端代码无法在服务器上运行。

您没有获得Exception。您收到了Error或其他Throwable

尝试在try / catch块中捕获Throwable,并且您将看到服务器JVM无法加载Cookies类时出现错误,因为出现了错误。 JVM认为缺少本地库(因为它不知道JSNI是什么或如何运行它),所以它抛出UnsatisfiedLinkError

  

如果Java虚拟机无法找到声明为native的方法的适当本机语言定义,则抛出该文件。

在GWT中,Cookies类旨在与浏览器本身进行交互,以查看在当前加载的页面上定义了哪些cookie。要在J2EE服务器上使用cookie,请向HttpServletRequest对象询问它知道的cookie及其值。