zoukankan      html  css  js  c++  java
  • 【Java】使用IDE开发工具远程调试Java代码

    概述

      服务端程序运行在一台远程服务器上,我们可以在本地服务端的代码(前提是本地的代码必须和远程服务器运行的代码一致)中设置断点,每当有请求到远程服务器时时能够在本地知道远程服务端的此时的内部状态

    测试项目

      创建方式参考:【Java】Maven Tomcat插件使用

      项目中新增了一个测试的Servlet,如下:

    1 public class HelloWorldServlet extends HttpServlet {
    2 
    3     @Override
    4     protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    5 
    6         System.out.println("-------HelloWorldServlet--------");
    7         resp.getWriter().print("SUCCESS");
    8     }
    9 }
    View Code

    服务端使用特定JVM参数运行代码

      要让远程服务器运行的代码支持远程调试,则启动的时候必须加上特定的JVM参数,这些参数是:

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

      其中5005是调试端口

    本地连接远程服务器debug端口

      使用IDEA为例

      1、服务端(本例也是在同一台电脑上运行)运行java项目,命令:java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar test-webapp-1.0-SNAPSHOT-war-exec.jar

      2、本地IDEA配置
        
        

      3、配置完成,连接调试
        
        控制台输出信息,显示已连接
        

      4、在Servlet中,增加断点即可调试。
        

      使用Eclipse为例

      1、服务端(本例也是在同一台电脑上运行)运行java项目,命令:java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar test-webapp-1.0-SNAPSHOT-war-exec.jar

      2、本地IEclipse配置

           a、

        b、

        c、 

      3、配置完成,连接调试,选择得bug即可

  • 相关阅读:
    从国内流程管理软件市场份额看中国BPM行业发展
    为什么流程是成功企业的关键?
    港真,到底应该选择OA还是BPM?
    hello world
    i40e网卡驱动遇到的一个问题
    suse 11 sp3编译报错问题
    linux scsi相关的一些学习笔记
    linux tcp 在timewait 状态下的报文处理
    趋势科技 redirfs模块的一个小问题
    linux 3.10 一个扇区异常可能引发的hung
  • 原文地址:https://www.cnblogs.com/h--d/p/9905015.html
Copyright © 2011-2022 走看看