最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用IDEA對SpringBoot應用進行遠程調試方式

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

情境描述

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

此時可以通過IDEA對部署在服務器上的SpringBoot應用進行遠程調試。

環(huán)境描述

  • 遠程服務器: 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è)務內容");
    }
}

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

IDEA遠程調試配置

打開項目配置

添加遠程應用

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

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

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

啟動遠程應用

登陸服務器,啟動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è)務內容
Listening for transport dt_socket at address: 5005

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

本地使用IDEA對遠程應用進行調試

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

訪問遠程測試接口

注意點

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

總結

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

相關文章

  • Java對象以Hash結構存入Redis詳解

    Java對象以Hash結構存入Redis詳解

    這篇文章主要介紹了Java對象以Hash結構存入Redis詳解,和Java中的對象非常相似,卻不能按照Java對象的結構直接存儲進Redis的hash中,因為Java對象中的field是可以嵌套的,而Redis的Hash結構不支持嵌套結構,需要的朋友可以參考下
    2023-08-08
  • SpringBoot整合redis使用緩存注解詳解

    SpringBoot整合redis使用緩存注解詳解

    這篇文章主要介紹了SpringBoot整合redis使用緩存注解詳解,@Cacheable在方法執(zhí)行前判斷對應緩存是否存在,如果存在直接返回緩存結果,否者執(zhí)行方法將結果緩存,適用于查詢類,需要的朋友可以參考下
    2024-01-01
  • Java基本數據類型之間的相互轉換詳解

    Java基本數據類型之間的相互轉換詳解

    這篇文章主要講解Java中基本數據類型的轉換,數據之間相互轉換是經常會用到的基礎操作,文中講的很清晰,希望能給大家做一個參考。
    2022-05-05
  • Java文件分級目錄打包下載zip的實例代碼

    Java文件分級目錄打包下載zip的實例代碼

    這篇文章主要介紹了Java文件分級目錄打包下載zip的實例代碼,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • spring boot springMVC擴展配置實現解析

    spring boot springMVC擴展配置實現解析

    這篇文章主要介紹了spring boot springMVC擴展配置實現解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-08-08
  • Java Swing JToggleButton開關按鈕的實現

    Java Swing JToggleButton開關按鈕的實現

    這篇文章主要介紹了Java Swing JToggleButton開關按鈕的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-12-12
  • 一文帶你掌握java8中的reduce操作

    一文帶你掌握java8中的reduce操作

    reduce?操作是一種通用的歸約操作,它可以實現從?Stream?中生成一個值,其生成的值不是隨意的,而是根據指定的計算模型,下面我們就來深入了解下java8中的reduce操作吧
    2023-12-12
  • Java多線程中的Executor框架解析

    Java多線程中的Executor框架解析

    這篇文章主要介紹了Java多線程中的Executor框架解析,Executor 框架是 Java5 之后引進的,在 Java 5 之后,通過 Executor 來啟動線程比使用 Thread 的 start 方法更好,除了更易管理,效率更好,需要的朋友可以參考下
    2023-12-12
  • 詳解java中spring里的三大攔截器

    詳解java中spring里的三大攔截器

    在本篇文章里我們給大家詳細講述了java中spring里的三大攔截器相關知識點以及用法代碼,需要的朋友們學習下。
    2018-10-10
  • SpringBoot熱重啟配置詳解

    SpringBoot熱重啟配置詳解

    在本篇文章里小編給大家分享的是關于SpringBoot熱重啟配置知識點內容,需要的朋友們可以學習下。
    2020-02-02

最新評論

山阳县| 郁南县| 定陶县| 梨树县| 凤阳县| 疏附县| 紫金县| 开原市| 嘉祥县| 同江市| 钟山县| 宾川县| 晋中市| 平潭县| 衡水市| 巴南区| 化隆| 景宁| 左云县| 平顺县| 肃北| 屏东市| 祁阳县| 莱芜市| 安多县| 长垣县| 突泉县| 乌拉特前旗| 齐河县| 明光市| 高邑县| 汕尾市| 板桥市| 浮梁县| 林西县| 灵宝市| 图木舒克市| 名山县| 根河市| 东至县| 安阳县|