2012-10-09 55 views
26

No se puede abrir el puerto del depurador en intellij. El número de puerto 9009 coincide con el que se ha establecido en el archivo de configuración para la aplicación.No se puede abrir el puerto del depurador en 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> 

configuración de IntelliJ:

enter image description here

Cuando trato y permitir la depuración remota en para esta aplicación que viene con el siguiente error: enter image description here

+0

El puerto no parece estar abierto. ¿Qué dice tu archivo de registro de aplicaciones? Normalmente diría algo como esto: 'Escuchando por el transporte dt_socket en la dirección: 9009'. – maba

+0

@maba: El puerto estaba abierto, ya que había ejecutado telnet 192.168.2.100 9009. Sin embargo, netstat no funcionaba, lo que significaba que había un problema en la configuración del glassfish. Así que agregué el siguiente parámetro de configuración en el java-config en glassfish en mi respuesta a continuación y funcionó. Gracias por su contribución. – MindBrain

Respuesta

8

Agregue el parámetro siguiente debug-enabled = "true" a esta línea en la configuración glassfish. Ejemplo:

<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=""> 

iniciar y detener el dominio glassfish o servicio que estaba usando esta configuración.

+28

¿Qué pasa si no estás usando glassfish? –

3

Espero que su problema se haya resuelto por ahora. Si no, intente esto ... Parece que tiene server=y tanto para su aplicación como para IDEA. IDEA probablemente debería ser server=n. Además, el cliente (IDEA) debe tener una dirección que incluya tanto el nombre de host como el puerto, por ejemplo, address=127.0.0.1:9009.

1

Esto funcionó para mí-- Si el problema persiste (en caso de que no esté utilizando un servidor glassFish), cierre su JIdea y detenga el servidor. Esto deshabilitará la conectividad de los puertos. Luego, inicie su servidor y JIdea, esto iniciará una nueva conectividad con los puertos, resolviendo el problema.

16

Es posible que tenga que cambiar el puerto del depurador si su puerto ya está siendo utilizado por otro programa. Para ello:

  • Editar Configuraciones
  • de inicio/Conexión pestaña
  • depuración
  • cambiar el puerto aquí
+0

¿Qué ocurre si no está utilizando la configuración predeterminada y, en su lugar, realizó una configuración remota personalizada? –

+0

¿Quiere decir usar un depurador remoto en localhost: 8000? Si es así, necesita especificar opciones de depuración en la JVM de su aplicación (Ejecutar), pero el problema es el mismo, necesita un puerto libre. – Pleymor

+0

@Pleymor No veo ninguna pestaña "Inicio/Conexión" desde Ejecutar> Editar configuraciones en mi Android Studio 2.2.2 en Mac OSX. Ha cambiado esto? – MrColes

0

que tenía el mismo problema y esta solución también hice el truco para mí : Proporcione el IP 127.0.0.1 en la configuración Intellij Debug en lugar del nombre de host "localhost", en caso de que esté utilizando este nombre de host.

+0

No funciona No – nuwanjaya

1

Para mí, el problema era que catalina.sh no tenía permisos de ejecución. El mensaje "No se puede abrir el puerto del depurador en intellij" apareció en Intellij, pero en cierto modo enmascaró el error "no se pudo ejecutar catalina.sh" que apareció en los registros inmediatamente anteriores.

+0

'apache-tomcat-9.0.5 chmod + x bin/*' lo resolvió – zhuguowei

0

intenta conectar con telnet, si se conecta entonces se muestra a continuación:

$ 10.238.136.165 telnet 9999 Tratando 10.238.136.165 ... Conectado a 10.238.136.165. El carácter de escape es '^]'. Conexión cerrada por un host externo.

Si el puerto no está disponible (ya sea porque alguien ya está conectado a ella o el puerto no está abierto, etc), entonces se muestra algo como lo muestra como a continuación:

$ 10.238.136.165 telnet 9999 Tratando 10.238 .136.165 ... telnet: conectarse a abordar 10.238.136.165: Conexión rechazada telnet: No se puede conectar al host remoto

Así que creo que hay que ver si:

  • la aplicación es propiedad de escuchar al puerto o no

  • o alguien más ya ha conectado a él

también intentará conectarse en ese m/c en sí primero como $ telnet localhost 9999

Cuestiones relacionadas