【问题标题】:Remote Debugging in IntelliJ TomcatIntelliJ Tomcat 中的远程调试
【发布时间】:2011-10-07 17:03:58
【问题描述】:

如何使用 Tomcat 从 IntelliJ 启用远程调试?

【问题讨论】:

    标签: intellij-idea


    【解决方案1】:

    使用 Tomcat Run/Debug Configuration。单击 按钮并选择新的Remote 配置。在Configuration 选项卡中复制 IDEA 建议的 JVM 选项。

    使用建议的 JVM 选项运行 Tomcat:

    set JAVA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=1317,suspend=n,server=y
    startup
    

    在 IDEA 中按下调试按钮。

    否则与本地Tomcat相同,check the tutorial

    请注意,部署到 Tomcat 是 available only in IDEA Ultimate,但您仍然可以自己手动部署到 Tomcat,并使用免费版使用 Java 的远程调试功能。

    【讨论】:

    • 重要:地址参数需要是一些高端口以避免Linux主机上的问题。只有当我用 25239 或类似的东西尝试这个时,它才起作用:)
    • 你也可以设置 maven 部署到 tomcat。在<plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <username>tomcat</username> <password>s3cret</password> <url>http://localhost:8081/manager</url> <server>localhost</server> <path>/portal</path> </configuration> </plugin> 之后添加到您的 pom.xml。然后从 Intellij 运行 maven tomcat7:deploy
    • 如何在 Windows 上检查和配置 Tomcat JVM 选项:stackoverflow.com/questions/5984540/…
    【解决方案2】:

    假设您独立启动 Tomcat 并从 IntelliJ IDE 远程连接调试器。

    1) Start Tomcat in debug mode
       $TOMCAT_HOME/bin/catalina.sh jpda start
    
       By default JPDA_ADDRESS is defined as "localhost:8000" in catalina.sh
       Change to a different port as need
    
    2) In IntelliJ IDE
       Click Run > Edit Configurations
       Click + icon on the top-left toolbar
       Click Remote
       Enter a name you want in Name input box
       Enter 8000 in Port input box under Settings section
    
    3) Click Apply, then OK
    4) Run > Debug..., Click the configuration you just created
    

    注意:

    1) This should work with other remote JPDA instances such as WebLogic, JBoss, etc.
    2) Documentation environment: Linux, IntelliJ IDEA 15.0.2
    

    【讨论】:

    • VM 初始化期间发生错误...错误:无法两次加载此 JVM TI 代理,请检查您的 java ...命令行是否有重复的 jdwp 选项...代理库无法初始化:jdwp。 .. 与服务器断开连接...
    • 恐怕这些建议是徒劳的 - 它们适用于一些非常旧的 IntelliJ 版本。
    【解决方案3】:

    只需使用以下命令启动 catalina:

    catalina jpda start
    

    默认情况下,tomcat 会启动并监听 8000 端口。

    另见http://wiki.apache.org/tomcat/FAQ/Developing#Q1

    【讨论】:

    • 注意 - 如果您使用 'catalina jpda run',远程调试将起作用并且 Tomcat 将在您的控制台中运行,这有时会很有帮助。
    • export JPDA_ADDRESS=0.0.0.0:8000 sh catalina.sh jpda start 0.0.0.0 允许从所有接口。您也可以配置为一个 IP。
    【解决方案4】:

    TOMCAT 配置说明

    远程调试工作的过程包括两个步骤。

     1. Starting Tomcat with remote debugging enabled
     2. Having your IDE, in my case IntelliJ IDEA, to be able to debug the remote tomcat application.
    

    有几种方法可以完成第一部分,具体取决于您的 Tomcat 实例运行的操作系统环境。但是,无论使用哪种方法,配置背后的主要思想都是一样的;即:将特定的启动选项传递给 JVM,以启用远程调试。

    如果您将 Tomcat 作为 Windows 服务运行,则只需在运行属性中指定启动参数即可将 Tomcat 配置为具有远程调试功能。

    打开 Apache Tomcat 属性对话框:

    Apache Tomcat/bin/tomcat9w.exe

    并在 Java 选项卡下添加所需的启动选项:

    -agentlib:jdwp=transport=dt_socket,address=1043,server=y,suspend=n

    Restart your server now.    
    Close and go to your IDE.
    

    配置 IntelliJ IDEA

    使用所需的启动参数启动 Tomcat 的远程 JVM,接下来要做的是在 IntelliJ IDEA 中配置调试器。

    打开编辑配置设置并选择远程选项:

    出现远程设置对话框,您可以在其中指定所需的配置;远程主机、端口、项目等...

    指定所需的设置,单击确定保存更改,然后启动调试会话。您还应该看到 IntelliJ 已成功连接到远程 VM 的通知。

    完成此操作后,您应该打开您在远程 Tomcat 上运行的应用程序的源代码,在需要的地方放置一个断点,然后您可以继续并开始调试,就好像应用程序在您的本地计算机上运行一样。

    【讨论】:

      【解决方案5】:

      如果您使用 Maven,在 IntelliJ IDEA 12 中远程调试在 Tomcat 7 中运行的 Web 应用程序非常方便!

      只需配置您的 pom 文件以使用 tomcat7-maven-plugin,例如:

      <plugin>
          <groupId>org.apache.tomcat.maven</groupId>
          <artifactId>tomcat7-maven-plugin</artifactId>
          <version>2.0</version>
      </plugin>
      

      然后使用“Maven Projects”工具窗口以调试模式启动tomcat7:run目标(见截图)。

      【讨论】:

      • 这是设置调试的好方法。但是,我认为这设置了本地调试,问题要求远程调试。
      • 这不能回答 OP 的问题。
      【解决方案6】:

      Intellij Idea中:

      1. 点击运行 -> 编辑配置 -> 添加新配置(“+”图标)

      2. 点击远程

      3. 设置主机端口

      4. 复制运行远程JVM的命令行参数的内容,例如:

        -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8000

      如果您使用 Tomcat 服务(适用于 Tomcat 9):

      1. 转到 %TOMCAT_INSTALL_DIR%/bin

      2. 运行tomcat9w.exe

      3. 单击 Java 选项卡

      4. 在 Java 选项中粘贴复制的文本:

        -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8000

      5. 申请。

      【讨论】:

      • 有关信息:“编辑配置”位于“运行”菜单下
      【解决方案7】:

      将这两行添加到您的bin/setenv.sh

      export JPDA_ADDRESS="5005"
      export JPDA_TRANSPORT="dt_socket"
      

      在 IntelliJ IDEA 中添加 remote 运行/调试配置。 (请参阅@Jonathan L 的答案)。您可以保留默认端口“5005”。

      启动tomcat,

      catalina.sh jpda run
      

      然后只需在 IDE 上运行 debug

      【讨论】:

        【解决方案8】:

        你可以设置

        export CATALINA_OPTS="$CATALINA_OPTS -agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n"
        

        bin tomcat 目录(远程服务器)中的setenv.sh 文件中并重新启动它。

        那么你应该在 intellij 的运行/调试配置中添加 Remote 并将Host 设置为远程服务器和Port 8000

        【讨论】:

          【解决方案9】:

          Step1(如何启动tomcat):

          cd /C/SOFTWARE/apache-tomcat-8.5.38/bin 
          JAVA_OPTS='-agentlib:jdwp=transport=dt_socket,address=54470,suspend=n,server=y' sh catalina.sh start
          ps aux | grep java
          

          第 2 步(将 Intellij 与远程端口连接):

          Run/Debug Configurations
              Tab: Server:
                 Application Server: Type "Tomcat 8.5.38"
                 Open browser -> URL -> http://localhost:8080/
                 Tomcat Server Settings -> Type -> Same File System
                                        -> Host -> Same File System
          
                 Remote Connection Settings
                                     -> Host -> localhost
                                     -> Port -> 8080
          
          Startup/Connection Tab
                 Run -> No specific parameters needed.
                 Debug -> -agentlib:jdwp=transport=dt_socket,address=54470,suspend=n,server=y
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2017-02-03
            • 1970-01-01
            • 2015-06-18
            • 2015-08-11
            • 2017-12-11
            • 2013-02-13
            • 2013-04-10
            • 2015-11-14
            相关资源
            最近更新 更多