如何在 Eclipse 中重新启动 Google App Engine Java 服务器?

Posted

技术标签:

【中文标题】如何在 Eclipse 中重新启动 Google App Engine Java 服务器?【英文标题】:How do I restart the Google App Engine Java Server in Eclipse? 【发布时间】:2010-10-22 11:46:23 【问题描述】:

好的,也许我是哑巴/盲人,但在文档中它说“重建并重新启动服务器”。但是我在任何地方都看不到执行此操作的按钮。或从任何上下文菜单。而且我在他们的文档中找不到任何解释如何做的东西。如果我只是尝试再次启动应用程序,它会生气,因为我已经在所需的端口上运行了 App Engine。

我找到的唯一解决方案是重新启动 Eclipse……还有其他想法吗?如果可能,按钮的屏幕截图会有所帮助。 :)

【问题讨论】:

【参考方案1】:

在 Eclipse 中,有一个包含您的控制台的视图。如果单击它,您将看到正在运行的应用程序的 STDOUT 和 STDERR 输出。右上角应该有一个红框,会终止当前运行的程序。

【讨论】:

不幸的是,这是一个糟糕的答案 - 重新启动的工作流程是“单击控制台选项卡以将其向前推进,删除在 GAE 控制台上弹出的其他控制台,单击红色按钮,然后单击工具栏中的“启动”。很难描述这种仪式是多么令人沮丧,一天要重复数百次。幸运的是,“touch appengine-web.xml”答案有效! 这就是答案,尽管步骤不是很详细。如果您需要更具体的步骤,我在以下站点找到了它们hoverdroids.com/errors/google-app-engine/…【参考方案2】:

我为您提供了一个不同的、可能更有成效的解决方案。与大多数 Web 开发环境一样,您可能希望更改源代码并让 Google Appengine 服务器为您重新加载新代码。

您需要一些传统的“touch”unix 命令版本(如果您在 Windows 上工作,您可以从 here 下载一个版本)。

然后转到您的项目属性 Builders 并添加一个新的构建步骤作为“程序”。在“位置”下输入“触摸”命令的路径(例如“D:\bin\UnxUtils\usr\local\wbin\touch.exe” - 在 Posix 系统上,只需“触摸”就足够了,因为它已经在你的PATH)并在“参数”中输入“$project_loc/war/WEB-INF/appengine-web.xml”之类的内容。 还可以转到“构建选项”选项卡并选中“在自动构建期间”。

"touch" 将更新您 appengine-web.xml 中的时间戳。当 App Engine 服务器检测到您对 appengine-web.xml 的更改时,它将自动重新加载应用程序。加载过程非常快,因此可以在您更改项目中的任何文件时完成(这通常会触发 Eclipse 中的自动构建) - 您可以调整构建器以仅在您更改某些类型的文件时运行。

【讨论】:

这是最好的智能和有效的解决方案。 您在每个工作日为我节省了大约 15 分钟的无意义点击。谢谢!! 看来我说得太早了。以这种方式重新加载服务器会导致 appstats 抛出 ClassCastExceptions。叹。我已经提交了这个错误:code.google.com/p/googleappengine/issues/detail?id=7052 你可以使用这个技巧来代替触摸。 ***.com/questions/51435/… 我以为touch的主要目的是创建新文件!我从这个答案中学到了两个技巧。【参考方案3】:

我可能会补充一点,“小红框”并不总是可见的。它让我疯狂地阅读相同的指令,但没有看到终止按钮,直到我发现控制台窗口具有“层”,您可以使用控制台视图控件最右侧的下拉按钮进行选择。您只需“返回”到显示服务器正在运行的控制台屏幕,您就会看到红色的小终止按钮。

【讨论】:

必须有一些更简单的方法来重启或只用一个快捷键重建.. 我认为如果你调试它而不是运行它,那么服务器会自行重启。无需停止并再次运行。但是,它似乎不稳定。【参考方案4】:

之前的答案不是为我切奶酪。首次启动 App Engine 时,文本输入区域上方会出现红色方块。如果我然后再次单击运行按钮,则红色方块将消失,并且先前启动的控制台将被新启动的控制台替换。要手动停止 App Engine 服务器,您可以从终端终止它: http://geekbrigade.wordpress.com/2009/02/26/how-to-find-and-kill-a-process-that-is-using-a-particular-port-in-ubuntu/ 简而言之,“sudo netstat -lpn |grep :8888”并通过进程ID杀死服务。

奇怪的是,将 Google Web Toolkit 添加到项目后,我的 App Engine 启动显示在 Development Mode 窗格中,很容易被杀死或重新启动。

【讨论】:

【参考方案5】:

只需点击 Debug 透视图(应该在右上角),在 Debug 面板上选择 Web 应用程序的实例(如果你不显示它,你可以通过菜单 Window->show view->Debug 启用)和点击查看菜单的红色框。

【讨论】:

【参考方案6】:

我发现最好的方法是为控制台的终止按钮和运行/调试启动/重新启动命令设置键盘快捷键。默认情况下,您可以启用 Command-F2 终止,并启用 Command-F11 重新启动,它相当轻松。确保启用完整的调试菜单组(单击主工具栏 -> 自定义等)

【讨论】:

【参考方案7】:

如果您在项目中包含 gwt SDK,则 gwt 开发模式框包含一个重新加载服务器按钮,该按钮可以正常工作。

【讨论】:

能否请您显示一个打印屏幕,我找不到那个“gwt 开发箱”?谢谢,编辑 nvm 我在 win7 上可能不像你 窗口 -> 显示视图 -> 其他 -> 在框中键入“Dev”;选择“谷歌->开发模式”。这将要求您在项目设置的 Google 部分启用 GWT(单击项目 -> alt + enter -> 在过滤器框中键入“Web Toolkit” -> 单击“启用 Google Web Toolkit”)。当 GWT 和 appengine 都启用时,开发模式服务器允许您使用开发模式 gui 中的重新加载图标同时重新启动两者。

以上是关于如何在 Eclipse 中重新启动 Google App Engine Java 服务器?的主要内容,如果未能解决你的问题,请参考以下文章

如何重新启动失败的 Google Apps 脚本触发器?

在Eclipse中开发WEB项目,如何在Tomcat启动的情况下,自动更新项目文件?

JAVA Eclipse如何重新设置工作空间workspace

Eclipse Google 插件不会为 Web 应用程序启动服务器

从 Eclipse 运行时如何杀死 Tomcat?

如何避免两次启动 Android 应用程序,从 Eclipse 运行到真实设备