52

无法在 intellij 中打开调试器端口。端口号 9009 与在应用程序配置文件中设置的端口号匹配。

<java-config debug-options="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9009" system-classpath="" native-library-path-prefix="D:\Project\lib\windows\64bit" classpath-suffix="">
    <jvm-options>-XX:MaxPermSize=192m</jvm-options>
    <jvm-options>-client</jvm-options>
    <jvm-options>-XX:+UnlockDiagnosticVMOptions</jvm-options>
    <jvm-options>-XX:+LogVMOutput</jvm-options>
    <jvm-options>-XX:LogFile=${com.sun.aas.instanceRoot}/logs/jvm.log</jvm-options>
    <jvm-options>-Djava.endorsed.dirs=${com.sun.aas.installRoot}/modules/endorsed${path.separator}${com.sun.aas.installRoot}/lib/endorsed</jvm-options>
    <jvm-options>-Djava.security.policy=${com.sun.aas.instanceRoot}/config/server.policy</jvm-options>
    <jvm-options>-Djava.security.auth.login.config=${com.sun.aas.instanceRoot}/config/login.conf</jvm-options>
    <jvm-options>-Dcom.sun.enterprise.security.httpsOutboundKeyAlias=s1as</jvm-options>
    <jvm-options>-Djavax.net.ssl.keyStore=${com.sun.aas.instanceRoot}/config/keystore.jks</jvm-options>
    <jvm-options>-Djavax.net.ssl.trustStore=${com.sun.aas.instanceRoot}/config/cacerts.jks</jvm-options>
    <jvm-options>-Djava.ext.dirs=${com.sun.aas.javaRoot}/lib/ext${path.separator}${com.sun.aas.javaRoot}/jre/lib/ext${path.separator}${com.sun.aas.instanceRoot}/lib/ext</jvm-options>
    <jvm-options>-Djdbc.drivers=org.apache.derby.jdbc.ClientDriver</jvm-options>
    <jvm-options>-DANTLR_USE_DIRECT_CLASS_LOADING=true</jvm-options>
    <jvm-options>-Dcom.sun.enterprise.config.config_environment_factory_class=com.sun.enterprise.config.serverbeans.AppserverConfigEnvironmentFactory</jvm-options>
    <jvm-options>-Dosgi.shell.telnet.port=4766</jvm-options>
    <jvm-options>-Dosgi.shell.telnet.maxconn=1</jvm-options>
    <jvm-options>-Dosgi.shell.telnet.ip=127.0.0.1</jvm-options>
    <jvm-options>-Dfelix.fileinstall.dir=${com.sun.aas.installRoot}/modules/autostart/</jvm-options>
    <jvm-options>-Dfelix.fileinstall.poll=5000</jvm-options>
    <jvm-options>-Dfelix.fileinstall.debug=1</jvm-options>
    <jvm-options>-Dfelix.fileinstall.bundles.new.start=true</jvm-options>
    <jvm-options>-Dorg.glassfish.web.rfc2109_cookie_names_enforced=false</jvm-options>
    <jvm-options>-XX:NewRatio=2</jvm-options>
    <jvm-options>-Xmx2048m</jvm-options>
  </java-config>

IntelliJ 中的配置:

在此处输入图像描述

当我尝试为此应用程序启用远程调试时,会出现以下错误: 在此处输入图像描述

4

18 回答 18

40

如果您的端口已被另一个程序使用,您可能必须更改调试器端口。为此:

  • 编辑配置
  • 启动/连接选项卡
  • 调试
  • 在此处更改端口

或者,也许在其他版本中:

  • 编辑配置
  • 左侧列表中的远程 > 远程调试
  • 配置选项卡,设置部分
  • 端口:在此处更改端口
于 2015-05-15T08:58:09.263 回答
9

在 glassfish 配置的这一行中添加以下参数 debug-enabled="true"。例子:

<java-config  debug-options="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9009" debug-enabled="true"
  system-classpath="" native-library-path-prefix="D:\Project\lib\windows\64bit" classpath-suffix="">

启动和停止使用此配置的 glassfish 域或服务。

于 2012-10-09T06:02:59.160 回答
8

我遇到了同样的问题,这个解决方案也为我解决了问题:在 Intellij Debug 配置中提供 IP 127.0.0.1 而不是主机名“localhost”,以防您使用此主机名。

于 2016-09-06T11:42:41.383 回答
8

您必须设置 CHMOD +x(对 *.sh 或 *.bat 文件执行)。例如,我使用的是 macOS

cd /Users/donhuvy/Documents/tools/apache-tomcat-9.0.12/bin
sudo chmod +x *.sh

然后 IntelliJ IDEA 和 Apache Tomcat 运行或调试就好了。

于 2018-09-26T04:02:18.457 回答
3

我希望你的问题现在已经解决了。如果没有,试试这个......看起来你server=y的应用程序和 IDEA 都有。IDEA 应该是server=n. 此外,(IDEA)客户端应该有一个包含主机名和端口的地址,例如address=127.0.0.1:9009.

于 2012-12-04T21:08:00.677 回答
3
  1. glassfish\domains\domain1\config\domain.xml启动服务器之前设置
<java-config classpath-suffix="" debug-options="-agentlib:jdwp=transport=dt_socket,address=9009,server=y,suspend=n" java-home="C:\Program Files\Java\jdk1.8.0_162" debug-enabled="true" system-classpath="">

或在 http://localhost:4848/common/index.jsf 中设置 debug-enabled="true" server=y,suspend=n Glassfish 4 地址=9009,服务器=y,挂起=n

  1. 在当前的 Idea 2018 - 服务器运行配置 - 调试 - 端口 - 地址 服务器运行配置-调试-端口-地址
于 2018-10-09T10:05:23.543 回答
1

这个对我有用——如果问题仍然存在(如果你没有使用 glassFish 服务器),那么关闭你的 Jidea 并停止服务器。这将禁用端口连接。然后启动您的服务器和 JIdea,这将开始与端口的新连接,从而解决问题。

于 2014-10-14T11:15:38.893 回答
1

对我来说,问题是 catalina.sh 没有执行权限。Intellij 中出现“无法在 intellij 中打开调试器端口”消息,但它在某种程度上掩盖了之前出现在日志中的“无法执行 catalina.sh”错误。

于 2017-03-09T03:31:09.893 回答
1

可能会发生此错误 Tomcat 已在运行。因此,如果您要求 Intellij 启动它(默认),请确保 Tomcat 没有在后台运行。

此外,检查完整的输出窗口是否有更多错误。因为这个错误之前可能有一个更有用的错误(就像我刚才的配置一样)

于 2018-07-26T20:51:21.210 回答
0

答案很简单,我也遇到了这个问题,最后我得到了完美的解决方案。 创建 调试使用以下配置创建远程调试 首先由调试运行。它让您等待套接字 5005,然后使用远程调试运行

于 2017-04-25T06:20:03.523 回答
0

尝试使用 telnet 连接,如果连接,则显示如下:

$telnet 10.238.136.165 9999 正在尝试 10.238.136.165... 连接到 10.238.136.165。转义字符是 '^]'。外部主机关闭连接。

如果端口不可用(或者因为其他人已经连接到它或者端口未打开等),那么它会显示如下所示的内容:

$telnet 10.238.136.165 9999 Trying 10.238.136.165... telnet:连接到地址 10.238.136.165:连接被拒绝 telnet:无法连接到远程主机

所以我认为需要看看是否:

  • 应用程序是否是监听端口的属性

  • 或者其他人已经连接到它

还尝试先连接该 m/c 本身,例如 $telnet localhost 9999

于 2017-06-09T20:50:07.910 回答
0

当服务器在端口 8090 上运行时,使用给定命令运行 Spring Boot 应用程序以在端口 6006 上启用调试:

mvn spring-boot:run -Drun.jvmArguments='-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=6006' -Dserver.port=8090
于 2018-04-03T22:10:54.377 回答
0

设置 MAVEN_OPTS。它应该工作!

export MAVEN_OPTS="-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=4000,server=y,suspend=n"

mvn spring-boot:run -Dserver.port=8090

于 2018-04-03T23:22:01.847 回答
0

您的服务/应用程序可能已经在运行。在搜索中输入服务,您将获得服务列表。停止你的,然后再试一次。

于 2019-06-12T11:43:41.120 回答
0

我有同样的问题,我只需要从 URL 中删除 HTTP 协议。就是这样。

我希望这个对你有用。

于 2019-07-10T00:45:57.743 回答
0

我曾经也有这个问题。我的解决方案是通过终止使用该端口的应用程序来解决此问题。 是一篇文章,教我们如何检查哪个应用程序正在使用哪个端口,找到它并杀死/关闭它。

于 2019-12-19T09:22:21.497 回答
0

只需再次点击调试图标即可在几秒钟内解决我的问题。

于 2020-02-11T20:17:44.943 回答
0

确保在 File --> Project Structure (Project | SDKs) 下为您的应用指定 SDK 和 Project SDK

于 2021-08-24T17:54:31.547 回答