• JAVA(TOMCAT)远程调试


        当我们的项目部署到远程机器(开发环境和部署环境在不同的jvm下)中,而远程机器的数据和本地有可能不一样,这个时候我们可能需要连接到远程机器进行调试。
    为了解决这一问题,JAVA为我们提供了Java平台调试架构(Java Platform Debugger Architecture,简称JPDA),JPDA由Java虚拟机后端和调试平台前端组成,两者之间通过socket进行通信。

    一、Java虚拟机后端(被调试jvm)


    1、开启debug模式,启动debug监听
       对于jdk1.7之前的程序,添加如下参数启动程序:
            java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=8000,suspend=n my_application
        对于1.7及以后程序,添加如下参数启动程序:
            java -agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n my_application

        其中:
            jdwp是Java Debug Wire Protocol的缩写。
            suspend表示是否在调试客户端建立连接之后启动 JVM。如果为y,那么当前的VM就是suspend直到有debug client连接进来才开始执行程序。

    2、对于tomcat,可以按照上述原理修改启动文件
        1)拷贝TOMCAT_HOME/bin/startup.bat 为 startjpda.bat
        2)修改startjpda.bat
            2.1) 增加:set JPDA_ADDRESS=8000(端口号可以根据需要自行选择)
            2.2) 修改:call "%EXECUTABLE%" start %CMD_LINE_ARGS% 为 call "%EXECUTABLE%" jpda start %CMD_LINE_ARGS%

    二、调试平台前端
        1、在Eclipse的“Run”菜单下选择“Debug Configurations...”菜单,在弹出的对话框左侧的菜单中选择“Remote Java Application”菜单,右键点击,选择“New”,这个时候弹出一个需要填写参数的对话框。
        2、在弹出框中,输入项目名称,选择要远程调试的项目,Connection Type(默认Standard (Socket Attach)),Java虚拟机后端地址及端口(第一步中指定)。
        3、接着选择Source标签,将项目的源码加入,一般情况下使用默认即可。
        4、切换到Debug模式下,在本地的源代码文件中加断点,然后打开远程连接即可。

  • 相关阅读:
    你人生中的那口井挖了没有?
    Stream接口
    console (控制台)
    assert.fail()
    assert.strictEqual()
    assert.equal()
    assert.ifError()
    assert.ok()
    nodejs assert 模块
    闭包
  • 原文地址:https://www.cnblogs.com/yuanyee/p/6478521.html
Copyright © 2020-2023  润新知