在App Engine中部署后,应用程序不会更新

adr*_*_88 9 java google-app-engine

我刚刚开始使用GAE,我已经遇到了问题.当我部署应用程序时,它似乎没有更新它,当我在浏览器中运行它时,它仍然运行旧版本.

我的简单代码是:

import java.io.IOException;
import javax.servlet.http.*;

@SuppressWarnings("serial")
public class AppEngineProjectServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse resp)
        throws IOException {
    resp.setContentType("text/html");
    resp.getWriter().println("<p>Hi there</p>");
}
Run Code Online (Sandbox Code Playgroud)

}

我在Eclipse中创建了一个新的Web应用程序项目,并获得了该代码.我刚刚将文本从'Hello World'更改为'Hi there',当我部署它时,它仍然运行Hello World!

我还尝试在部署新版本并将其设置为默认版本时更改应用程序的版本,但似乎没有什么对我有用.是否有任何特殊原因导致我可能忽略了这一点?

Ant*_*oly 6

经过长时间的聊天会议后,OP问题已经解决.

主要观点:

  1. 在部署到云之前,始终在本地测试您的应用程序(使用Development Server)
  2. 注意浏览器缓存问题(用于Ctrl+F5刷新和丢弃本地缓存)
  3. 如果要降低破坏生产的风险,请在部署到云之前更改应用程序版本
  4. 部署后,检查GAE上的应用程序管理控制台
    1. 在" 管理" - >"管理日志"下,检查"已部署新版本"等新条目
    2. Main - > Versions下,确保访问最近部署的版本Live URI [版本].[app-name] .appspot.com).
    3. 再次确保浏览器缓存不会妨碍(Ctrl+F5是你的朋友)
  5. 此外,为避免运行时异常,如果以需要构建新索引的方式更新持久层,请检查数据 - >数据存储索引以确保没有索引仍在构建(这可能需要数小时甚至数天).
  6. 完成测试后(确保Live URI版本正常工作)只需将新版本设置为默认值(在Main - > Versions下).
  7. 建议进行一些A/B测试.GAE内置支持Traffic Splitting.在你感觉100%确定它按预期工作(实际上是200%)之前,不要跳枪并将新版本提升为默认值.虽然您可以随时将默认版本更改为上一版本,但如果您回滚,您的用户将不会感到高兴(相信我......在那里,完成了).