2016-09-26 110 views
3

我有一个Web应用程序运行在10.0.1.62:8080/xxx。我想通过IntelliJ IDEA进行远程调试。我已经10.0.1.62机上设置JAVA_OPTS = -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000远程调试与IntelliJ的Tomcat 7

(Tomcat7在Ubuntu),当我按下遥控器调试按钮IDE是给一个信息消息:

连接到目标VM,地址:' 10.0.1.62:8000' ,运输: '插座'

比我打的10.0.1.62:8080/xxx。 虽然我得到这个成功的消息,brekpoints没有命中。我错过了什么?从你的问题听起来好像你已经按照这些步骤Remote Debugging in IntelliJ Tomcat

回答

3

首先,双通过引用该问题和答案检查您的设置。还有一些其他的配置问题导致了我过去的远程tomcat调试问题,我将分享它并希望它有所帮助。

  1. 确保您在IntelliJ上启动了正确的远程调试过程。 Remote Debug
  2. 如果主机上运行着多个Tomcat服务器,请确保连接到正确的Tomcat实例。调试端口8000可能已经在使用中。我使用的是15019的任意端口或其他尚未使用的端口号。确保Tomcat和IntelliJ之间使用的端口匹配。
  3. 根据您在Tomcat上设置远程调试的方式,它可能无法正常关闭而使旧实例运行。在catalina.sh顶部添加调试挂钩将导致shutdown.sh脚本失败,因为您的调试端口已经绑定到Tomcat服务器。相反,把它内启动if语句:

    elif [ "$1" = "start" ] ; then JAVA_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,address=15019,suspend=n,server=y"

修复此问题后,您可以关闭Tomcat的成功与./shutdown.sh,仍然启动调试与./startup.sh

  1. 确保您有一个clean在Tomcat上部署您的应用程序。您的清理过程可能需要变化,但这里的总体思路是:

    Shutdown Tomcat, then verify it is no longer running. Remove the deployed war file and corresponding exploded version from your tomcat webapps directory. Remove the contents of the work and temp directories. Deploy and verify your recently build war file. Start Tomcat.

创建一个脚本来执行,这将节省时间。

  1. 如果一切都失败了,请添加一个调试日志来首先调用带有断点的代码。

我确定还有其他20件事情可能会出错。随意添加想法。