欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用IDEA對SpringBoot應用進行遠程調(diào)試方式

 更新時間:2025年02月22日 09:27:00   作者:不會畫畫的畫師  
文章介紹了如何在IDEA中對部署在服務(wù)器上的SpringBoot應用進行遠程調(diào)試,通過配置遠程調(diào)試端口和啟動參數(shù),本地IDEA可以設(shè)置斷點并進行調(diào)試

情境描述

有時候,應用開發(fā)完成發(fā)布到服務(wù)器時出現(xiàn)異常,但本地卻無法復現(xiàn),也無法通過服務(wù)器上的日志定位。

此時可以通過IDEA對部署在服務(wù)器上的SpringBoot應用進行遠程調(diào)試。

環(huán)境描述

  • 遠程服務(wù)器: CentOS 7
  • 語言環(huán)境:JDK 1.8
  • SpringBoot版本:2.3.4.RELEASE
  • IDEA版本:2020.2

操作步驟

測試應用編寫與發(fā)布

本地使用IDEA寫一個簡單的SpringBoot web應用,開放一個接口,代碼如下:

package com.example.remoteapp.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @Author UV
 * @Version 0.1
 * @Data 2020/9/29
 * @Description
 */
@RestController
public class OpenController {

    @GetMapping("/hello")
    public void hello() {
        System.out.println("此處是斷點");
        System.out.println("此處是正常業(yè)務(wù)內(nèi)容");
    }
}

使用mvn install將應用打成jar包,上傳到服務(wù)器上。

IDEA遠程調(diào)試配置

打開項目配置

添加遠程應用

設(shè)置遠程應用名、debugger模式(Debugger mode)、配置遠程服務(wù)器地址(Host)、端口(Port)、應用模塊(Use module classpath)

此處的Port為遠程應用的遠程調(diào)試端口,不是應用本身的業(yè)務(wù)訪問端口。

配置完成后,復制下圖中的參數(shù),作為遠程應用的啟動參數(shù)

啟動遠程應用

登陸服務(wù)器,啟動jar包

$ java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar remoteapp-0.0.1-SNAPSHOT.jar 
Listening for transport dt_socket at address: 5005

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.3.4.RELEASE)

2020-09-29 02:20:47.247  INFO 798 --- [           main] c.e.remoteapp.RemoteappApplication       : Starting RemoteappApplication v0.0.1-SNAPSHOT on migration-plat01.novalocal with PID 798 (/root/remoteapp-0.0.1-SNAPSHOT.jar started by root in /root)
2020-09-29 02:20:47.252  INFO 798 --- [           main] c.e.remoteapp.RemoteappApplication       : No active profile set, falling back to default profiles: default
2020-09-29 02:20:49.000  INFO 798 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2020-09-29 02:20:49.024  INFO 798 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2020-09-29 02:20:49.024  INFO 798 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.38]
2020-09-29 02:20:49.120  INFO 798 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2020-09-29 02:20:49.121  INFO 798 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1773 ms
2020-09-29 02:20:49.428  INFO 798 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
2020-09-29 02:20:49.697  INFO 798 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2020-09-29 02:20:49.712  INFO 798 --- [           main] c.e.remoteapp.RemoteappApplication       : Started RemoteappApplication in 3.297 seconds (JVM running for 3.953)
2020-09-29 02:21:54.307  INFO 798 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring DispatcherServlet 'dispatcherServlet'
2020-09-29 02:21:54.307  INFO 798 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'
2020-09-29 02:21:54.318  INFO 798 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : Completed initialization in 11 ms
此處是斷點
此處是正常業(yè)務(wù)內(nèi)容
Listening for transport dt_socket at address: 5005

此時可以在日志第一行看到Listening for transport dt_socket at address: 5005證明遠程調(diào)試接口配置成功。

本地使用IDEA對遠程應用進行調(diào)試

在IDEA中打一個斷點,開啟debug

訪問遠程測試接口

注意點

  • 遠程調(diào)試端口一定要跟應用的業(yè)務(wù)端口不一致,否則會因為端口沖突導致應用無法啟動
  • 本地代碼要與遠程代碼一致,否則調(diào)試過程會出現(xiàn)異常

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 解讀classpath讀取resources目錄下的文件

    解讀classpath讀取resources目錄下的文件

    這篇文章主要介紹了解讀classpath讀取resources目錄下的文件,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • idea2019版與maven3.6.2版本不兼容的解決方法

    idea2019版與maven3.6.2版本不兼容的解決方法

    這篇文章主要介紹了idea2019版與maven3.6.2版本不兼容的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-10-10
  • 集合框架及背后的數(shù)據(jù)結(jié)構(gòu)

    集合框架及背后的數(shù)據(jù)結(jié)構(gòu)

    本文主要介紹了Java的集合框架Java?Collection?Framework,接口interface以及背后的數(shù)據(jù)結(jié)構(gòu),感興趣的同學可以閱讀參考
    2023-03-03
  • SpringBoot中實現(xiàn)文件上傳、下載、刪除功能的步驟

    SpringBoot中實現(xiàn)文件上傳、下載、刪除功能的步驟

    本文將詳細介紹如何在 Spring Boot 中實現(xiàn)文件上傳、下載、刪除功能,采用的技術(shù)框架包括:Spring Boot 2.4.2、Spring MVC、MyBatis 3.5.6、Druid 數(shù)據(jù)源、JUnit 5 等,文中有詳細的操作步驟和示例代碼供大家參考,需要的朋友可以參考下
    2024-01-01
  • 自定義Spring Security的身份驗證失敗處理方法

    自定義Spring Security的身份驗證失敗處理方法

    在本篇文章里小編給大家整理了一篇關(guān)于自定義Spring Security的身份驗證失敗的處理方法,有需要的朋友們學習下。
    2019-05-05
  • Spring Boot Mybatis++ 2025詳解

    Spring Boot Mybatis++ 2025詳解

    文章介紹了三種基于注解SQL和查詢接口的MyBatis使用方式,討論了Entity和Example的區(qū)別,即Entity會更新所有字段,而Example僅更新非空字段,感興趣的朋友一起看看吧
    2025-02-02
  • SpringBoot依賴及其作用分析

    SpringBoot依賴及其作用分析

    這篇文章主要介紹了SpringBoot依賴及其作用,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • SpringBoot集成vue的開發(fā)解決方案

    SpringBoot集成vue的開發(fā)解決方案

    這篇文章主要介紹了SpringBoot集成vue的開發(fā)解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • 揭秘SpringBoot!一分鐘教你實現(xiàn)配置的動態(tài)神刷新

    揭秘SpringBoot!一分鐘教你實現(xiàn)配置的動態(tài)神刷新

    在今天的指南中,我們將深入探索SpringBoot?動態(tài)刷新的強大功能,讓你的應用保持最新鮮的狀態(tài),想象一下,無需重啟,你的應用就能實時更新配置,是不是很酷?跟我一起,讓我們揭開這項技術(shù)如何讓開發(fā)變得更加靈活和高效的秘密吧!
    2024-03-03
  • 詳解log4j.properties的簡單配置和使用

    詳解log4j.properties的簡單配置和使用

    本篇文章主要介紹了詳解log4j.properties的簡單配置和使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12

最新評論