【问题标题】:GAE: Uploading to Blobstore Service kills the SessionGAE:上传到 Blobstore 服务会终止会话
【发布时间】:2012-09-05 00:31:15
【问题描述】:

所以我使用 GAE 并创建了一个会话来在一些 JSP 和 servlet 之间保留一些数据。问题是当我访问 Blobstore 服务上传文件时,会话被终止并且用户被注销。

这是导致问题的表单属性: action="" method="post" enctype="multipart/form-data"

【问题讨论】:

  • 这应该可以。如果我在 JSP 的会话中保存某些内容,我可以在上传处理程序中检索它。
  • 这是有效的最小示例:pastebin.com/RDFaqcgc
  • 只是想补充一点,在某些情况下它可以工作。这对我来说是不可复制的。有时会话还活着,但有时它已经死了。很奇怪。
  • 检查 cookie(将它们打印到控制台)并比较工作/非工作会话。
  • 感谢 Peter Knego,将尝试一下。

标签: java html google-app-engine jsp servlets


【解决方案1】:

似乎会话被终止基于 blobstoreService.createUploadUrl("/test") 在开发环境中更改域。如果我使用我的开发机器 IP 地址进行测试,会话将被破坏,因为回调 URL 会导致计算机名称:端口/测试而不是 ipaddress:端口/测试。如果我在 URL 中使用计算机名来提交表单,那么会话仍然存在并且开发人员很高兴。

【讨论】:

    【解决方案2】:

    对于将来看到这个问题的人来说,这个问题似乎只发生在本地开发服务器中,但不会在部署应用后发生。

    我在本地开发服务器上进行测试时遇到了同样的问题。将文件上传到 GAE Blobstore 会导致用户退出并打乱会话。在我部署了我的应用程序后,一切都在网上完美运行。希望我在花费数小时试图找出解决方法之前先尝试过。

    【讨论】:

      【解决方案3】:

      如果您使用 Eclipse 进行开发,您可以在部署之前验证每个 jsps。如果你先清除所有错误,编译错误就会消失。我对开发环境没有抱怨但阻止部署的错误感到惊讶。

      【讨论】:

        猜你喜欢
        • 2012-10-20
        • 1970-01-01
        • 2015-08-13
        • 2014-06-27
        • 2019-07-16
        • 1970-01-01
        • 1970-01-01
        • 2013-12-19
        • 2011-03-11
        相关资源
        最近更新 更多