亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

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

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

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

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

配置docker-compose.yml

  • CATALINA_OPTS參數(shù)配置啟動遠(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啟動遠(yuǎn)程調(diào)試
        CATALINA_OPTS: "-Xdebug -Xrunjdwp:transport=dt_socket,address=5005,suspend=n,server=y"

    command: ["catalina.sh", "run"]
  • JPDA參數(shù)配置啟動遠(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實現(xiàn)遠(yuǎn)程調(diào)制配置

首先,我們要讓要讓遠(yuǎn)程服務(wù)器支持遠(yuǎn)程調(diào)試功能,在項目啟動項上追加特定的 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

打開配置窗口

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

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

總結(jié)

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

相關(guān)文章

  • ManyToMany單向、雙向:@JoinTable的使用

    ManyToMany單向、雙向:@JoinTable的使用

    這篇文章主要介紹了ManyToMany單向、雙向:@JoinTable的使用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • java隨機(jī)抽取指定范圍內(nèi)不重復(fù)的n個數(shù)

    java隨機(jī)抽取指定范圍內(nèi)不重復(fù)的n個數(shù)

    這篇文章主要為大家詳細(xì)介紹了java隨機(jī)抽取指定范圍內(nèi)不重復(fù)的n個數(shù),感興趣的小伙伴們可以參考一下
    2016-02-02
  • idea打開和讀取*properties文件亂碼的解決

    idea打開和讀取*properties文件亂碼的解決

    本文主要介紹了idea打開和讀取*properties文件亂碼的解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-09-09
  • 新手了解java 數(shù)組基礎(chǔ)知識

    新手了解java 數(shù)組基礎(chǔ)知識

    這篇文章主要介紹了Java 數(shù)組分析及簡單實例的相關(guān)資料,在Java中它就是對象,一個比較特殊的對象,需要的朋友可以參考下,希望可以對你有所幫助
    2021-07-07
  • Java多線程實現(xiàn)Runnable方式

    Java多線程實現(xiàn)Runnable方式

    這篇文章主要為大家詳細(xì)介紹了Java多線程如何實現(xiàn)Runnable方式,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • 解決Lombok注解不起作用的問題

    解決Lombok注解不起作用的問題

    這篇文章主要介紹了解決Lombok注解不起作用的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • 關(guān)于Java中數(shù)組切片的幾種方法(獲取數(shù)組元素)

    關(guān)于Java中數(shù)組切片的幾種方法(獲取數(shù)組元素)

    這篇文章主要介紹了關(guān)于Java中數(shù)組切片的幾種方法(獲取數(shù)組元素),切片是數(shù)組的一個引用,因此切片是引用類型,在進(jìn)行傳遞時,遵守引用傳遞的機(jī)制,需要的朋友可以參考下
    2023-05-05
  • Java網(wǎng)絡(luò)通信基礎(chǔ)編程(必看篇)

    Java網(wǎng)絡(luò)通信基礎(chǔ)編程(必看篇)

    下面小編就為大家?guī)硪黄狫ava網(wǎng)絡(luò)通信基礎(chǔ)編程(必看篇)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • Java SpringBoot的相關(guān)知識點詳解

    Java SpringBoot的相關(guān)知識點詳解

    這篇文章主要介紹了SpringBoot的相關(guān)知識點,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2021-10-10
  • 使用@TableField(updateStrategy=FieldStrategy.IGNORED)遇到的坑記錄

    使用@TableField(updateStrategy=FieldStrategy.IGNORED)遇到的坑記錄

    這篇文章主要介紹了使用@TableField(updateStrategy=FieldStrategy.IGNORED)遇到的坑及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11

最新評論