[英]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中的版本:
但問題仍然存在。
現在,我回到最新版本,再次強調該問題。
自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.