无法在IntelliJ中打开调试器端口

时间:2012-10-09 04:32:14

标签: java debugging intellij-idea

无法在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中的配置:

enter image description here

当我尝试为此应用程序启用远程调试时,会出现以下错误: enter image description here

17 个答案:

答案 0 :(得分:20)

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

  • 运行
  • 编辑配置
  • 远程&gt;左侧列表中的远程调试
  • “配置”选项卡,“设置”部分
  • 端口:此处更改端口

答案 1 :(得分:9)

将以下参数debug-enabled =“true”添加到glassfish配置中的此行。 例如:

<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域或服务。

答案 2 :(得分:5)

我有同样的问题,这个解决方案也为我做了诀窍:如果您使用此主机名,请在Intellij Debug配置中提供IP 127.0.0.1而不是主机名“localhost”。

答案 3 :(得分:3)

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

答案 4 :(得分:2)

  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 address=9009,server=y,suspend=n

  1. 在当前Idea 2018中-服务器运行配置-调试-端口-地址 Server Run Configuration - Debug - Port - address

答案 5 :(得分:1)

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

答案 6 :(得分:1)

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

答案 7 :(得分:1)

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

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

然后IntelliJ IDEA和Apache Tomcat运行或调试都很好。

答案 8 :(得分:0)

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

答案 9 :(得分:0)

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

答案 10 :(得分:0)

我遇到了同样的问题,我只需要从URL中删除HTTP协议即可。而已。

我希望它对您有用。

答案 11 :(得分:0)

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

答案 12 :(得分:0)

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

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

答案 13 :(得分: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

答案 14 :(得分:0)

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

mvn spring-boot:run -Drun.jvmArguments='-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=6006' -Dserver.port=8090

答案 15 :(得分:0)

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

$ telnet 10.238.136.165 9999 试试10.238.136.165 ...... 连接到10.238.136.165。 逃脱角色是'^]'。 连接由外国主机关闭。

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

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

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

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

  • 或其他人已与之相关

首先尝试连接那个m / c本身 $ telnet localhost 9999

答案 16 :(得分:0)

答案很简单, 我也遇到了问题,最后我得到了完美的解决方案。 Create Debug Create Remote debug with following configuration 首先通过调试运行。 它让你等待套接字5005 然后使用远程调试

运行