簡體   English   中英

在GAE項目上進行調試時,Eclipse Oxygen會非常緩慢地啟動服務器。 服務器進程掛起處於停止掛起狀態

[英]Eclipse Oxygen very slow server startup when debug on GAE projects. Server process hangs in a stopping pending state

我在Eclipse Oxygen版本4.7.2和適用於Eclipse插件版本1.5.0的Google Cloud Tools中擁有一個Maven Java GAE(Google App Engine)項目。 我正在Windows 10計算機上運行Eclipse。

我的代碼中有一個簡單的Servlet類:

package it.ale.test;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet(name = "HelloAppEngine", urlPatterns = { "/hello" }, loadOnStartup = 1)
public class HelloAppEngine extends HttpServlet {

    @Override
    public void init() throws ServletException {

        super.init();

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

    }

    @Override
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {

        response.setContentType("text/plain");
        response.setCharacterEncoding("UTF-8");

        response.getWriter().print("Hello App Engine!\r\n");

    }

}

當我在“ public void init()”函數的任何行上放置調試斷點時,在該行上的示例:

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

並且我以DEBUG模式(調試方式-> App Engine)啟動服務器,服務器啟動速度非常慢,並且出現錯誤消息:

本地服務器服務器標准引擎無法在240秒內啟動。 如果服務器需要更多時間,請嘗試在服務器編輯器中增加超時時間。


2018年1月16日更新:

同時,在錯誤即將來臨之時,Eclipse凍結,然后啟動的服務器的Java進程仍然掛起。 因此,除非取消Java服務器進程,否則無法重新啟動服務器。

這是代表這一點的屏幕截圖

請注意,在右下角,服務器的Java進程尚未停止

這是顯示未決停止狀態的屏幕截圖

因此,除非取消Java服務器進程,否則無法重新啟動服務器。

@BriandeAlwis我可以提供任何日志來幫助您更好嗎? 也許是Google Cloud SDK的“ gcloud”集成問題?


2018年1月16日更新:

我嘗試降級Google Cloud SDK中的版本:

  • Google Cloud SDK 172.0.0
  • app-engine-java 1.9.56
  • app-engine-python 1.9.60
  • bq 2.0.26
  • 核心2017.09.15
  • gsutil 4.27

但問題仍然存在。

現在,我回到最新版本,再次強調該問題。

  • Google Cloud SDK 184.0.0
  • app-engine-java 1.9.60
  • app-engine-python 1.9.65
  • bq 2.0.28
  • 核心2018.01.15
  • gsutil 4.28

自Eclipse 1.6.0的Google Cloud Tools以來,此問題已得到修復。

對於那些對細節感興趣的人,請參閱https://github.com/GoogleCloudPlatform/google-cloud-eclipse/issues/2727

您可以通過刪除現有服務器並刪除所有斷點並再次在App Engine中重新啟動項目來解決此問題

窗口->顯示視圖->其他->服務器(如果不存在,則搜索服務器)窗口->顯示視圖->其他->斷點(如果不存在,則搜索斷點)

之后,只需右鍵單擊服務器並將其刪除,即可刷新您的工作空間並運行項目,它將起作用。 編碼愉快。

我將插件更新為1.5.1版,最后我看到DEBUG和RUN中啟動緩慢的問題已解決。

無論如何,我發現以下問題仍然存在:

同時,我發現了另一個錯誤...嘗試用以下代碼替換INIT函數的代碼:

 @Override public void init() throws ServletException { super.init(); if (true) { throw new RuntimeException(); } System.out.println("Print something."); } 

這樣,我就強制例外。 嘗試單擊運行方式-> App Engine,然后嘗試停止服務器 服務器仍掛在“ STOPPING ”狀態。

這意味着,如果啟動代碼中存在異常,則服務器將不再關閉。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM