2012-10-09 36 views
26

無法打開intellij中的調試器端口。 端口號9009與在應用程序的配置文件中設置的端口號相匹配。無法打開IntelliJ中的調試器端口

<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

+0

該港似乎並未開放。你的應用程序日誌文件說什麼?通常情況下,它會這樣說:'在地址:9009處收聽transport dt_socket'。 – maba

+0

@maba:端口已打開,因爲我運行的是telnet 192.168.2.100 9009。但netstat無法正常工作,因此意味着glassfish配置中存在問題。因此,我在glassfish的java-config中添加了以下配置參數我的回答如下,它的工作。謝謝你的貢獻。 – MindBrain

回答

8

添加以下參數在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域或服務。

+28

如果您不使用glassfish會怎麼樣? –

3

我希望你的問題已經解決了。如果沒有,請嘗試這...看起來您的應用程序和IDEA都有server=y。 IDEA應該可能是server=n。另外,(IDEA)客戶端應該有一個包含主機名和端口的地址,例如address=127.0.0.1:9009

1

這一個爲我工作 - 如果問題仍然存在(如果您沒有使用glassFish服務器),然後關閉您的JIdea並停止服務器。這將禁用端口連接。然後啓動服務器和JIdea,這將啓動與端口的全新連接,解決問題。

16

您可能需要更改調試端口,如果你的端口已被其他程序使用。要做到這一點:

  • 編輯配置
  • 啓動/連接選項卡
  • 調試
  • 更改此端口
+0

如果您不使用默認配置,而是進行自定義遠程配置,該怎麼辦? –

+0

你的意思是在localhost:8000上使用遠程調試器?如果是這樣,您需要在應用程序的JVM中指定調試選項(運行),但問題是相同的,您需要一個空閒端口。 – Pleymor

+0

@Pleymor我在Mac OSX上的Android Studio 2.2.2中沒有看到「運行」>「編輯配置」中的「啓動/連接」選項卡。這有改變嗎? – MrColes

0

我有同樣的問題,這個解決方案也做了把戲對我來說:如果您使用此主機名,請在Intellij Debug配置中提供IP 127.0.0.1,而不要使用主機名「localhost」。

+0

不行不行 – nuwanjaya

1

對我來說,問題是catalina.sh沒有必須執行權限。 Intellij中出現「無法打開intellij中的調試器端口」消息,但它掩蓋了之前在日誌中出現的'無法執行catalina.sh'錯誤。

+0

'apache-tomcat-9.0.5 chmod + x bin/*'解決了它 – zhuguowei

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 ... 遠程登錄:連接地址10.238.136.165:連接被拒絕 的telnet:無法連接到遠程主機

所以我覺得一個需要看是否:

  • 應用是財產監聽端口或不

  • 或別人已經連接到它

還嘗試對M /第一連接C本身就像 $遠程登錄本地主機9999

相關問題