GAE项目Intellij远程调试在关闭时不释放端口

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GAE项目Intellij远程调试在关闭时不释放端口相关的知识,希望对你有一定的参考价值。

我正在Intellij上构建“Hello World”Google App Engine应用程序。代码在GAE上构建并运行良好。我尝试通过以下页面在Intellij中本地运行和调试它:https://cloud.google.com/tools/intellij/docs/deploy-local(注意:我正在使用社区添加并遵循社区版的说明)

每次我调试服务器,它运行正常,显示在localhost:PORT_NUMBER罚款。但是,当我点击“停止调试”(你经常点击红色方块以结束调试程序)并重新运行它时,我得到这个:

[INFO] GCLOUD: Could not open the requested socket: Address already in use
[INFO] GCLOUD: Try overriding --address and/or --port.

显然每次启动服务器并关闭它时,端口都不会正常释放。我尝试多次更改端口号,每次服务器在第一次运行时都正常运行,之后无法获取端口号。

请注意,停止服务器后,localhost:PORT_NUMBER不再显示hello world字符串。相反它显示

HTTP ERROR: 404
Problem accessing /. Reason:

NOT_FOUND
Powered by Jetty://

而不是通常的“无法访问此站点”消息,表示不存在的端口。

$ netstat -na | grep ':81'
tcp6       0      0 :::8176                 :::*                    LISTEN     
tcp6       0      0 :::8177                 :::*                    LISTEN     
tcp6       0      0 :::8178                 :::*                    LISTEN     
tcp6       0      0 :::8179                 :::*                    LISTEN     
tcp6       0      0 :::8180                 :::*                    LISTEN     
tcp6       0      0 :::8181                 :::*                    LISTEN

任何帮助,将不胜感激!

答案

我来自构建此插件的团队。

你在使用Maven和app-maven-plugin吗?

我认为,您遇到的是文档中的错误。而不是在Maven运行配置中使用以下命令:

appengine:start

尝试使用:

appengine:run

前者以异步方式运行开发服务器,这解释了为什么当你点击停止按钮时它没有被杀死。

要重新开始(如果您使用的是OSX),可以运行以下命令来查找并终止失控过程:

netstat -vanp tcp | grep [replace with your port #]

然后:

kill -9 [process id found via the previous command]

感谢您的报告,我将确保更新文档。

以上是关于GAE项目Intellij远程调试在关闭时不释放端口的主要内容,如果未能解决你的问题,请参考以下文章

IntelliJ IDEA + tomcat 远程调试

flinkFlink 使用IntelliJ IDEA 进行远程调试代码

IntelliJ IDEA 2018.2.2远程调试Tomcat的配置方法

IntelliJ IDEA服务器远程调试报Connection refused

IntelliJ IDEA spring boot 远程Ddbug调试

Intellij IDEA远程调试java控制台程序