无法在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中的配置:
当我尝试为此应用程序启用远程调试时,会出现以下错误:
答案 0 :(得分:20)
如果您的端口已被其他程序使用,则可能必须更改调试器端口。为此:
答案 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)
<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
答案 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 然后使用远程调试
运行