Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在GAE项目上调试时,Eclipse Oxygen服务器启动速度非常慢。服务器进程挂起,处于停止挂起状态_Java_Eclipse_Google App Engine_Gcloud_Google Plugin Eclipse - Fatal编程技术网

Java 在GAE项目上调试时,Eclipse Oxygen服务器启动速度非常慢。服务器进程挂起,处于停止挂起状态

Java 在GAE项目上调试时,Eclipse Oxygen服务器启动速度非常慢。服务器进程挂起,处于停止挂起状态,java,eclipse,google-app-engine,gcloud,google-plugin-eclipse,Java,Eclipse,Google App Engine,Gcloud,Google Plugin Eclipse,我在EclipseOxygen4.7.2版中有一个Maven Java GAE(谷歌应用程序引擎)项目,在Eclipse插件1.5.0版中有谷歌云工具。我正在Windows10机器上运行Eclipse 我的代码中有一个简单的Servlet类: package it.ale.test; 导入java.io.IOException; 导入javax.servlet.ServletException; 导入javax.servlet.annotation.WebServlet; 导入javax.ser

我在EclipseOxygen4.7.2版中有一个Maven Java GAE(谷歌应用程序引擎)项目,在Eclipse插件1.5.0版中有谷歌云工具。我正在Windows10机器上运行Eclipse

我的代码中有一个简单的Servlet类:

package it.ale.test;
导入java.io.IOException;
导入javax.servlet.ServletException;
导入javax.servlet.annotation.WebServlet;
导入javax.servlet.http.HttpServlet;
导入javax.servlet.http.HttpServletRequest;
导入javax.servlet.http.HttpServletResponse;
@WebServlet(name=“HelloAppEngine”,urlPatterns={”/“hello”},loadOnStartup=1)
公共类HelloAppEngine扩展了HttpServlet{
@凌驾
public void init()引发ServletException{
super.init();
System.out.println(“打印某物”);
}
@凌驾
public void doGet(HttpServletRequest请求、HttpServletResponse响应)引发IOException{
response.setContentType(“文本/普通”);
响应。setCharacterEncoding(“UTF-8”);
response.getWriter().print(“Hello应用程序引擎!\r\n”);
}
}
当我在“public void init()”函数的任何一行上放置调试断点时,例如:

System.out.println(“打印某物”);
我在调试模式下启动服务器(调试为->应用程序引擎),服务器启动速度非常慢,我看到错误消息:

localhost上的服务器应用程序引擎标准无法在240秒内启动 秒。如果服务器需要更多时间,请尝试增加超时时间 在服务器编辑器中


2018年1月16日更新:

与此同时,当错误来临时,Eclipse冻结,之后启动的服务器的Java进程仍然挂起。因此,除非终止Java服务器进程,否则无法重新启动服务器

请注意,在右下角,服务器的Java进程尚未停止

因此,除非终止Java服务器进程,否则无法重新启动服务器

@布朗代尔维斯 有什么日志我可以提供给你更好的帮助吗? 可能是谷歌云SDK“gcloud”集成问题


2018年1月16日更新:

我尝试降级Google Cloud SDK中的版本:

  • 谷歌云SDK 172.0.0
  • 应用程序引擎java 1.9.56
  • 应用程序引擎python 1.9.60
  • bq 2.0.26
  • 核心2017.09.15
  • gsutil 4.27
但问题依然存在

现在我回到最新版本,再次强调这个问题

  • 谷歌云SDK 184.0.0
  • 应用程序引擎java 1.9.60
  • 应用程序引擎python 1.9.65
  • bq 2.0.28
  • 核心2018.01.15
  • gsutil 4.28

自从用于Eclipse 1.6.0的谷歌云工具以来,这一问题已经得到了解决


对于那些对细节感兴趣的人,请参见。

我将插件更新为1.5.1版,最后我发现调试和运行中启动缓慢的问题都得到了解决

无论如何,我发现以下问题仍然存在:

与此同时,我发现了另一个bug。。。尝试用以下代码替换INIT函数的代码:

@Override
public void init() throws ServletException {

    super.init();

    if (true) {
          throw new RuntimeException();
    }

    System.out.println("Print something.");

}
以这种方式,我强制开始一个异常。尝试单击运行方式->应用程序引擎并尝试停止服务器。服务器保持挂起状态,处于“停止”状态

这意味着,如果启动代码中出现异常,服务器将不再关闭


您可以通过删除现有服务器、删除所有断点并在app engine中重新启动项目来修复此问题

窗口->显示视图->其他->服务器(如果不存在,则搜索服务器) 窗口->显示视图->其他->断点(如果不存在断点,则搜索断点)

之后,只需右键单击服务器并将其删除,刷新您的工作空间并运行project即可。
快乐的编码。

Hmm,有点不对劲:我一直在这样做,启动只需一两秒钟。运行速度和调试速度一样慢吗?或者您可以尝试调试但禁用断点(运行>跳过所有断点)?感谢您的回复。不,跑得很快,大约一两秒钟。只有当此初始断点处于活动状态时,问题才会发生。如果禁用此断点,调试速度与运行速度一样快,大约为一两秒钟。我忘了告诉您我在Windows 10计算机上突出显示的这个问题。我以为问题出在我的电脑上,但我已经在另外两台装有Windows 8的机器上强调了同样的问题。我忘了。。。我目前使用的JVM是Oracle JDK 8 1.8.0_151版。我以前的Oracle JDK 8版本1.8.0_74也有同样的问题。我怀疑这是因为我也遇到了问题。我发现在Variables视图中删除断点,然后重新创建断点通常会奏效。抱歉@BriandeAlwis,但我认为这不是问题所在。当我启动调试操作时,Eclipse将冻结,直到我达到错误“localhost上的服务器应用程序引擎标准无法在240秒内启动”。如果服务器需要更多的时间,请尝试在服务器编辑器中增加超时。在此之后,我在“变量”视图中看不到任何内容,而且启动服务器的Java进程仍然挂起。因此,除非终止Java服务器进程,否则无法重新启动服务器。很快我就尝试更新帖子。你提到的另一个问题是。这将在下一个CT4E版本中修复。