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



我正在尝试在我的服务器端实现类中读取 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块被触发,并显示状态代码异常:

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

我在服务器上的日志记录输出如下所示:

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

怎么可能在 Cookie.getCookie() 调用后,记录器、INFO 或 ERROR 都不会触发?我希望通过添加 catch(异常 e),我会得到一些错误消息,解释代码失败的原因。但执行似乎只是默默地停止了。

我正在使用com.google.gwt.user.client.Cookies。我认为客户端代码可以在服务器上运行,反之亦然。这是对的吗?我还缺少什么吗?

我正在使用com.google.gwt.user.client.Cookies。我认为客户端代码可以在服务器上运行,反之亦然。这是对的吗?我还缺少什么吗?

不,这是不正确的,是的,您缺少一些东西:服务器代码无法在客户端上运行,客户端代码无法在服务器上运行

你没有得到Exception.您正在获得Error或其他Throwable

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

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

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

相关内容

最新更新