zoukankan      html  css  js  c++  java
  • 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模式下,在本地的源代码文件中加断点,然后打开远程连接即可。

  • 相关阅读:
    三行代码搞定微信登录集成
    iptables命令
    Linux(centos)系统各个目录的作用详解 推荐
    Linux下Apache服务的查看和启动
    Linux使用退格键时出现^H ^?解决方法
    小程序:最难点For的wx:key
    linux 通过wol远程开机【转】
    linux wake on lan功能通过ethtool配置【转】
    设计模式小议:state【转】
    TCP/IP详解学习笔记(4)-ICMP协议,ping和Traceroute【转】
  • 原文地址:https://www.cnblogs.com/yuanyee/p/6478521.html
Copyright © 2011-2022 走看看