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

使用IDEA對SpringBoot應(yīng)用進(jìn)行遠(yuǎn)程調(diào)試方式

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

情境描述

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

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

環(huán)境描述

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

操作步驟

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

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

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將應(yīng)用打成jar包,上傳到服務(wù)器上。

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

打開項目配置

添加遠(yuǎn)程應(yīng)用

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

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

配置完成后,復(fù)制下圖中的參數(shù),作為遠(yuǎn)程應(yīng)用的啟動參數(shù)

啟動遠(yuǎn)程應(yīng)用

登陸服務(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證明遠(yuǎn)程調(diào)試接口配置成功。

本地使用IDEA對遠(yuǎn)程應(yīng)用進(jìn)行調(diào)試

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

訪問遠(yuǎn)程測試接口

注意點

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

總結(jié)

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

相關(guān)文章

  • Java對象以Hash結(jié)構(gòu)存入Redis詳解

    Java對象以Hash結(jié)構(gòu)存入Redis詳解

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

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

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

    Java基本數(shù)據(jù)類型之間的相互轉(zhuǎn)換詳解

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

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

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

    spring boot springMVC擴(kuò)展配置實現(xiàn)解析

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

    Java Swing JToggleButton開關(guān)按鈕的實現(xiàn)

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

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

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

    Java多線程中的Executor框架解析

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

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

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

    SpringBoot熱重啟配置詳解

    在本篇文章里小編給大家分享的是關(guān)于SpringBoot熱重啟配置知識點內(nèi)容,需要的朋友們可以學(xué)習(xí)下。
    2020-02-02

最新評論

通城县| 清丰县| 库伦旗| 宜兰市| 镇坪县| 洞口县| 石景山区| 始兴县| 托里县| 阜宁县| 象州县| 阿合奇县| 确山县| 中江县| 正阳县| 德惠市| 西贡区| 合作市| 泽库县| 潮安县| 郧西县| 杭锦旗| 威信县| 贵阳市| 利辛县| 乌苏市| 靖远县| 石景山区| 吉首市| 崇明县| 曲松县| 资中县| 丰镇市| 阆中市| 布尔津县| 福鼎市| 泸西县| 衡南县| 左贡县| 河曲县| 桐城市|