无法从 IntelliJ IDEA 12.1.4 Ultimate (Windows 7) 启动 Apache Tomcat 6

Posted

技术标签:

【中文标题】无法从 IntelliJ IDEA 12.1.4 Ultimate (Windows 7) 启动 Apache Tomcat 6【英文标题】:Cannot start Apache Tomcat 6 from IntelliJ IDEA 12.1.4 Ultimate (Windows 7) 【发布时间】:2013-09-15 10:42:23 【问题描述】:

我需要在 IntelliJ IDEA 中为 Tomcat6 调试一个 Web 应用程序。

当我尝试运行我的 Web 应用程序时,出现两个错误:

    地址 localhost:1099 已在使用中 无法打开调试器端口:java.net.SocketException

手动启动 Apache Tomcat 6 服务可以正常工作。

我应该怎么做才能从 Intellij IDEA 调试 Apache Tomcat 6 中的 Web 应用程序?

【问题讨论】:

【参考方案1】:

将您的 http 端口更改为 8080(tomcat 的默认端口)并将端口调试为当前未被任何进程使用的端口。您可以使用任何大于 1024 的值,但由于您在 1099 上遇到错误,请尝试使用大于 6000 的值。

调试器设置可以在here找到

【讨论】:

在安装 Tomcat 时,我专门输入了端口号,而 netstat -A 的输出中没有这些端口号。 如何更改Tomcat的JMX端口? @DmitriPisarenko 您可以在 catalina-tasks.xml 中更改端口检查此documentation 那里提到的一些文件(例如 setenv.bat)在我的安装中不存在,可能是因为我将 Tomcat 安装为 Windows 服务。 @DmitriPisarenko - 所以你在 Windows 上而不是在 MAC 上。然后请到您安装tomcat的文件夹中找到名为tomcat6w.exe的文件并打开java选项卡。在那里您可以找到一个名为java options 的文本区域。在这里添加以下行-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n。确保将8000 更改为您要调试的任何端口。您必须使用 GUI 重新启动 tomcat 才能使更改生效。【参考方案2】:

如果您之前启动并运行了 Web 应用程序,则可能有一个旧的调试服务器在后台运行时没有正常关闭。请参阅这篇文章了解如何找到使用端口 1099 的进程。如果证明是 java 进程,请杀死它。

How can you find out which process is listening on a port on Windows?

(如果您使用上面链接中建议的 GUI sw,您可以通过标记所有使用端口 1099 的 java 进程来终止进程,右键单击并按“结束进程...”)

【讨论】:

我完全赞成这个答案。通常有一个我需要杀死的 java.exe 进程,它是之前仍在运行的 tomcat 进程。杀死这个进程可以解决问题。 +1 表示“如果您之前启动并运行了 Web 应用程序,则可能有一个旧的调试服务器在后台运行时没有正常关闭”,这正是我的情况 - 谢谢跨度> 【参考方案3】:

您可以在运行/调试配置对话框中更改 JMX 端口(默认为 1099)。只需尝试不同的端口号(即 9099)。

【讨论】:

在我的例子中,在 Windows 上使用 1099 端口的是 SCComm(一项重要任务)。所以我不能直接杀死任务。正如这所说,最简单的解决方案是更改 JMX 端口号。【参考方案4】:

如前所述,有一个旧的调试服务器在后台运行。

我的解决方案是关闭从 Windows 任务管理器中打开的 Java 进程。

请先确认您可以关闭此进程,然后再执行此操作!

【讨论】:

小心这个。您可以搞砸计算机上运行的其他一些进程。【参考方案5】:

可能有其他程序或服务器在后台运行。先关闭其他后台运行的服务器,然后重启你的服务器。

【讨论】:

【参考方案6】:

我发现这个答案很有帮助:

How can you find out which process is listening on a port on Windows?

我打开资源监视器并查找正在使用端口的内容。然后打开任务管理器并结束这些进程

【讨论】:

【参考方案7】:

按照以下步骤操作:-

    打开命令提示符并键入命令 netstat -ano 您将看到活动 TCP 连接列表,其中 PID 作为最后一列 查看列出本地地址的第二列,并从中找到使用端口 1099 的地址,您将获得其 PID 现在打开您的任务管理器,单击进程选项卡并显示 PID 列[通过右键单击标题行并选择 PID 或单击查看,然后单击选择列并选择 PID。] 现在找到我们从 Step3 得到的 PID 并结束进程。

现在你可以走了:)

【讨论】:

非常有帮助。节省大量时间。【参考方案8】:

我一直面临这个问题。以下是解决方法

LINUX

打开一个终端实例。

fuser 1099/tcp

这应该会返回一个进程 ID。

1099/tcp:            31596

其中 31596 是进程 ID。现在您可以使用进程 ID 来杀死它,或者直接 bash 以下内容 -

fuser -k 1099/tcp

WINDOWS

打开一个命令提示符实例。

netstat -aon | find "1099"

这将返回一个流程实例。

输出:

TCP    0.0.0.0:1099       0.0.0.0:0       LISTENING       15776

这里的 15776 是进程 ID。要杀死它,请输入 -

taskkill /F /PID 15776

干杯!

【讨论】:

【参考方案9】:

在使用 InteliJ 时关闭所有其他不必要的服务器。

我停止了我的 WAMP 以消除此错误“端口已在使用中”。

【讨论】:

【参考方案10】:

对我有用的是。我假设我需要在“服务”[Windows + R >> services.msc]下运行“Apache Tomcat”服务

我去这里停止了Tomcat服务。然后我来到我的 Java 应用程序并在 Intellij 中运行它,它允许我运行它。

希望这会有所帮助!

【讨论】:

以上是关于无法从 IntelliJ IDEA 12.1.4 Ultimate (Windows 7) 启动 Apache Tomcat 6的主要内容,如果未能解决你的问题,请参考以下文章

Intellij Idea无法从Controller跳转到视图页面的解决方案

Intellij Idea无法从Controller跳转到视图页面的解决方案

Intellij Idea导入项目时无法生成Artifacts

IntelliJ IDEA方法参数无法正确显示

Spring Boot无法使用intellij idea启动应用程序

如何从 IntelliJ IDEA 中的模型类生成 Flyway 迁移脚本?