Tomcat挂起并阻止Eclipse在运行一段时间后关闭

时间:2016-11-16 23:14:12

标签: eclipse tomcat

我在Windows 10 Professional 64位周年纪念版上使用in-IDE Tomcat 8.5.6运行Eclipse 4.6.1。

一段时间后,Tomcat在Eclipse中运行后,Eclipse中嵌入的Tomcat无法再停止。我按下红色"停止" "服务器"中的按钮;选项卡,但没有任何反应。最终Eclipse会问我是否要终止Tomcat:

  

localhost上的服务器Tomcat v8.5服务器没有响应。你想终止这台服务器吗?单击“确定”终止服务器,或单击“取消”继续等待。

我点击"确定终止服务器......但Tomcat一直在运行。

不幸的是,当我尝试关闭Eclipse时,它会挂起"保存工作台状态。"最后我必须杀死Eclipse,从而失去我的工作台状态。更糟糕的是,如果我再启动Eclipse并尝试重新启动嵌入式Tomcat,我会收到以下错误:

  

'在localhost启动Tomcat v8.5服务器'遇到了问题。

     

Tomhost v8.5服务器在localhost上所需的几个端口(8005,8080,8009)已在使用中。服务器可能已在另一个进程中运行,或者系统进程可能正在使用该端口。要启动此服务器,您需要停止其他进程或更改端口号。

我怎么能通过手术进入并真正杀死Tomcat,以便它不会挂起Eclipse并保持端口打开? (不幸的是,在任务管理器中出现的唯一东西是Eclipse.exe。没有Tomcat可见。我已经尝试杀死javaw.exe子进程,但这并没有帮助。)

(有一次我认为这与VPN连接断开有关,但今天这种情况根本没有VPN连接。)

我已经提交了Eclipse Bug 511342。我们会看看是否有任何问题。

4 个答案:

答案 0 :(得分:0)

找到你的Tomcat安装目录,导航到bin文件夹,在那里打开一个命令窗口并执行一个名为.bat的{​​{1}}文件,这样你可以直接杀死tomcat,确保找到Eclipse正在使用的适当的Tomcat安装目录。

更新 - 预期输出: enter image description here

答案 1 :(得分:0)

我没有像你一样使用它,但这可能会有所帮助。

在命令提示符(Cmd.exe)上执行:

netstat -a -o | find "8080"

这将列出正在使用的所有IP / PORT以及通过端口#8080过滤的PID(进程ID)(更改它以满足您的需要或如果要列出所有内容则删除查找) 打开任务管理器,使用PID你应该能够找到特定的 正在使用您需要发布的端口的进程。 更新: 找到端口(8080)后,您可以尝试使用命令

taskkill /f /pid [port number]  

发现此命令的相关问题:Stack overflow - Tomcat not shutting down eclipse

同样,当我需要找到一个我需要杀死的流氓的东西时,我会使用它,而且我不知道嵌入式环境是否会将它分开,但值得一试。

答案 2 :(得分:0)

我在本地尝试但我无法重新创建该错误。

我不确定这会回答你的问题,但肯定值得一试,无论如何这可能会向其他用户展示一些功能....

在窗口菜单中您有SHOW VIEW,您可以选择其他 enter image description here

这将打开未来窗口,其中包含搜索栏和ide的所有可用视图。 enter image description here

debug视图中,您不仅可以对应用程序执行操作,还可以对服务器执行操作。此处的菜单与您在server中看到的视图不同,您可以执行高级终止其他操作。

enter image description here

welp,希望有所帮助。

*请注意,您不需要服务器以调试模式运行。

答案 3 :(得分:-2)

在Eclipse中的tomcat控制台中,有一个可以阻止它的红色按钮。 Albert还表示在任务管理器中它显示为javaw.exe,但Eclipse本身也显示为javaw.exe,因此在杀死每个时要小心。 Eclipse应该是需要更多内存的那个。