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

java實(shí)現(xiàn)線上環(huán)境遠(yuǎn)程debug調(diào)試過(guò)程

 更新時(shí)間:2025年02月14日 10:20:25   作者:趙廣陸  
本文介紹了在Docker容器中配置Tomcat和Spring Boot進(jìn)行遠(yuǎn)程調(diào)試的方法,通過(guò)配置`CATALINA_OPTS`或`JPDA`參數(shù),可以在測(cè)試環(huán)境中啟動(dòng)Tomcat或Spring Boot應(yīng)用的debug模式,然后在本地IDEA中設(shè)置斷點(diǎn)進(jìn)行調(diào)試,從而更高效地定位和解決問(wèn)題

docker中tomcat實(shí)現(xiàn)遠(yuǎn)程調(diào)試配置

由于部署環(huán)境的差異性,相信很多朋友都碰到過(guò)開(kāi)發(fā)環(huán)境正常測(cè)試過(guò)的功能在測(cè)試環(huán)境甚至生產(chǎn)環(huán)境下出現(xiàn)bug的情況。

一般情況下,生產(chǎn)環(huán)境可以采取的手段比較單一,即通過(guò)日志的方式獲取運(yùn)行中的環(huán)境上下文,分析日志文件并嘗試重現(xiàn)bug。

這會(huì)帶來(lái)的問(wèn)題還是不少的,首先,日志的分析是一項(xiàng)比較耗時(shí)的工作;其次,現(xiàn)有的日志記錄不一定能反映出問(wèn)題,你可能需要多次重復(fù)這個(gè)過(guò)程(分析日志->猜測(cè)問(wèn)題->加日志->部署->獲取日志)來(lái)慢慢逼近問(wèn)題。

倘若是測(cè)試環(huán)境,我們還多了一項(xiàng)可供選擇的手段——遠(yuǎn)程調(diào)試——將程序在測(cè)試環(huán)境中以debug模式啟動(dòng),在本機(jī)使用IDEA在工程中設(shè)置斷點(diǎn)進(jìn)行調(diào)試。

配置docker-compose.yml

  • CATALINA_OPTS參數(shù)配置啟動(dòng)遠(yuǎn)程調(diào)試功能
version: '2.2'

services:
  test:
    container_name: test
    image: tomcat:8.5.32

    ports:
      - "5005:5005"

    volumes:
      - "./target/test:/usr/local/tomcat/webapps/ROOT"

    environment:
        # tomcat啟動(dòng)遠(yuǎn)程調(diào)試
        CATALINA_OPTS: "-Xdebug -Xrunjdwp:transport=dt_socket,address=5005,suspend=n,server=y"

    command: ["catalina.sh", "run"]
  • JPDA參數(shù)配置啟動(dòng)遠(yuǎn)程調(diào)試功能
version: "3"
services:
  tomcat:
    image: tomcat:8.5.27
    ports:
      - "8080:8080"
      - "5005:5005"
    volumes:
      - ./www:/www:rw
      - ./conf/server.xml:/usr/local/tomcat/conf/server.xml:ro
    environment:
      JPDA_ADDRESS: 5005
      JPDA_TRANSPORT: dt_socket
    command: ["catalina.sh", "jpda", "run"]
    networks:
      - default

  # 需要nginx、mysql、redis、activemq配置都可以在這里加上

networks:
  default:

docker中spring boot實(shí)現(xiàn)遠(yuǎn)程調(diào)制配置

首先,我們要讓要讓遠(yuǎn)程服務(wù)器支持遠(yuǎn)程調(diào)試功能,在項(xiàng)目啟動(dòng)項(xiàng)上追加特定的 JVM 參數(shù)即可,參數(shù)如下:

晚于 JDK 1.4.X 版本

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

配置docker-compose.yml

app.jar指打包后的spring boot包

version: '2.2'

services:
  test:
    container_name: test

    ports:
      - "8080:8080"
      - "5005:5005"

    CMD ["java","-jar","-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005","-Dspring.profiles.active=sit","app.jar"]

配置IDEA

打開(kāi)配置窗口

點(diǎn)擊左上角+號(hào),找到remote,配置服務(wù)部署的服務(wù)地址,如果是本地測(cè)試配置localhost,配置上文配置中指定的端口

選擇啟動(dòng),即可調(diào)試遠(yuǎn)程項(xiàng)目

總結(jié)

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

相關(guān)文章

  • 詳解Java中NullPointerException異常的原因和解決辦法

    詳解Java中NullPointerException異常的原因和解決辦法

    本文主要介紹了詳解Java中NullPointerException異常的原因和解決辦法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • Slf4j+logback實(shí)現(xiàn)JSON格式日志輸出方式

    Slf4j+logback實(shí)現(xiàn)JSON格式日志輸出方式

    這篇文章主要介紹了Slf4j+logback實(shí)現(xiàn)JSON格式日志輸出方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • IDEA全局查找關(guān)鍵字的用法解讀

    IDEA全局查找關(guān)鍵字的用法解讀

    這篇文章主要介紹了IDEA全局查找關(guān)鍵字的用法解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Spring Boot 整合 Mockito提升Java單元測(cè)試的高效實(shí)踐案例

    Spring Boot 整合 Mockito提升Java單元測(cè)試的高效實(shí)踐案例

    Mockito與Spring Boot的整合為Java開(kāi)發(fā)者提供了一套完整的解決方案,使得單元測(cè)試更為精準(zhǔn)、高效,從而確保了代碼質(zhì)量、降低了維護(hù)成本,并促進(jìn)了項(xiàng)目的持續(xù)集成與交付,感興趣的朋友跟隨小編一起看看吧
    2024-04-04
  • Java8?Stream?API中實(shí)現(xiàn)集合list轉(zhuǎn)map的多種方式

    Java8?Stream?API中實(shí)現(xiàn)集合list轉(zhuǎn)map的多種方式

    這篇文章介紹了如何使用Java8的StreamAPI對(duì)QuotaDto對(duì)象列表進(jìn)行操作,包括字段提取、映射、組裝成Map、枚舉類處理、元素拼接、聚合函數(shù)以及去重,文章的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下
    2025-12-12
  • Java 控制線程的方法

    Java 控制線程的方法

    這篇文章主要介紹了Java 控制線程的方法,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06
  • Java中八種基本數(shù)據(jù)類型的默認(rèn)值

    Java中八種基本數(shù)據(jù)類型的默認(rèn)值

    這篇文章主要介紹了Java中八種基本數(shù)據(jù)類型的默認(rèn)值 的相關(guān)資料,需要的朋友可以參考下
    2016-07-07
  • Mybatis-plus的service通用接口解讀

    Mybatis-plus的service通用接口解讀

    這篇文章主要介紹了Mybatis-plus的service通用接口解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • SpringIOC?BeanDefinition的加載流程詳解

    SpringIOC?BeanDefinition的加載流程詳解

    這篇文章主要為大家介紹了SpringIOC?BeanDefinition的加載流程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • Java 序列化和Java反射的底層原理及區(qū)別對(duì)比分析

    Java 序列化和Java反射的底層原理及區(qū)別對(duì)比分析

    Java 序列化和反射是 Java 中兩個(gè)不同維度的機(jī)制,序列化聚焦對(duì)象的持久化與傳輸,反射聚焦類 / 對(duì)象的動(dòng)態(tài)訪問(wèn)與操作,二者底層原理和應(yīng)用場(chǎng)景差異顯著,以下從底層原理、核心特性、區(qū)別對(duì)比展開(kāi)解析,本文介紹Java 序列化和Java反射的底層原理及區(qū)別,感興趣的朋友一起看看吧
    2025-12-12

最新評(píng)論

肇东市| 鄂托克旗| 潜山县| 温州市| 灌阳县| 黄大仙区| 文水县| 穆棱市| 五常市| 樟树市| 利辛县| 金寨县| 东山县| 泰安市| 嘉荫县| 红桥区| 康马县| 凤凰县| 闽侯县| 石景山区| 招远市| 灌南县| 游戏| 喜德县| 宝山区| 尼勒克县| 西林县| 老河口市| 金山区| 泽库县| 曲阜市| 上犹县| 云林县| 重庆市| SHOW| 信丰县| 南丹县| 西乡县| 霸州市| 都昌县| 汕头市|