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

因不會遠(yuǎn)程debug調(diào)試我被項目經(jīng)理嘲笑了

 更新時間:2021年08月31日 10:18:57   作者:java1234_小鋒  
這篇文章主要介紹了遠(yuǎn)程debug調(diào)試的相關(guān)內(nèi)容,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

大家好,我是曹尼瑪,剛從培訓(xùn)機(jī)構(gòu)畢業(yè),去一家單位上班一周了…

在這里插入圖片描述

這一周項目經(jīng)理讓我熟悉了項目業(yè)務(wù),架構(gòu)和設(shè)計,不算難,憑借我培訓(xùn)機(jī)構(gòu)第一名的成績,還是很順溜。

在這里插入圖片描述

今天項目經(jīng)理把同事們叫到一起,說線上438x6項目出現(xiàn)奇葩問題,但是開發(fā)環(huán)境初步測試沒問題,需要配合測試部的小姐姐們在測試環(huán)境遠(yuǎn)程debug跟蹤下,排查下問題,以及正式環(huán)境日志也會提供,重現(xiàn)下問題,解決下bug;

在這里插入圖片描述

項目經(jīng)理見我這幾天比較悠閑
所以就對我說,“曹尼瑪,這個小任務(wù)就交給你了”

在這里插入圖片描述

“我,我,我,我不會遠(yuǎn)程debug,沒聽過什么是遠(yuǎn)程debug”;

在這里插入圖片描述

我看到同事都忍不住笑出來了,項目經(jīng)理也鄙視的笑了。
哎,培訓(xùn)機(jī)構(gòu)只教了debug本地調(diào)試,何況還沒練熟呢,遠(yuǎn)程debug都沒聽過。
后來散會,項目經(jīng)理單獨(dú)找我訓(xùn)話;

在這里插入圖片描述

“簡歷2年開發(fā)經(jīng)驗,遠(yuǎn)程debug都不會,你是干什么吃的,明天下班前把bug找到,否則直接滾蛋”

在這里插入圖片描述

靠,包裝簡歷和經(jīng)驗,露餡了
趕緊學(xué)吧,加班熬夜學(xué)習(xí)了下,第二天上午通過遠(yuǎn)程debug,配合線上日志,最終找到了問題;
順便總結(jié)了下,寫了篇遠(yuǎn)程debug調(diào)試文章分享給大家,以及錄制了一個遠(yuǎn)程debug視頻教程;希望大家早日學(xué)會,不要被他人嘲笑和鄙視!

這里正式開始筆記內(nèi)容;文末附上視頻教程下載地址

1,遠(yuǎn)程DEBUG的必要性

由于部署環(huán)境的差異性,相信很多朋友都碰到過開發(fā)環(huán)境正常測試過的功能在測試環(huán)境甚至生產(chǎn)環(huán)境下出現(xiàn)bug的情況。一般情況下,生產(chǎn)環(huán)境可以采取的手段比較單一,即通過日志的方式獲取運(yùn)行中的環(huán)境上下文,分析日志文件并嘗試重現(xiàn)bug。這會帶來的問題還是不少的,首先,日志的分析是一項比較耗時的工作;其次,現(xiàn)有的日志記錄不一定能反映出問題,你可能需要多次重復(fù)這個過程(分析日志->猜測問題->加日志->部署->獲取日志)來慢慢逼近問題。倘若是測試環(huán)境,我們還多了一項可供選擇的手段——遠(yuǎn)程調(diào)試——將程序在測試環(huán)境中以debug模式啟動,在本機(jī)使用IDEA在工程中設(shè)置斷點(diǎn)進(jìn)行調(diào)試。

2,IDEA構(gòu)建SpringBoot測試Demo

新建SpringBoot測試項目remote-debug,只需要web依賴支持即可;版本選用2.2.6.RELEASE(注意,別用2.5.1版本,有坑,親測)

pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.2.6.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.java1234</groupId>
	<artifactId>remote-debug</artifactId>
	<version>v1.0</version>
	<name>remote-debug</name>
	<description>Demo project for Spring Boot</description>
	<properties>
		<java.version>1.8</java.version>
	</properties>
	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

</project>

application.yml:

server:
  port: 80
  servlet:
    context-path: /
  tomcat:
    uri-encoding: utf-8

簡單搞個TestController,提供一個Rest接口

package com.java1234.controller;

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

/**
 * @author java1234_小鋒
 * @site www.java1234.com
 * @company Java知識分享網(wǎng)
 * @create 2021-06-12 15:37
 */
@RestController
public class TestController {

    @PostMapping("/test")
    public String test(Integer id,String name){
        System.out.println("id="+id);
        System.out.println("name="+name);
        if(id>0){
            return "success "+name;
        }else{
            return "fail";
        }
    }

}

我們啟動項目,用postman測試下:

測試接口:http://localhost/test 加入Body form-data 參數(shù) id=1,name=marry,Send 測試,返回 success marry,測試OK;

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-qPf6tyol-1623688298210)(image-20210613222730931.jpg)]

3,測試Demo項目配置支持遠(yuǎn)程調(diào)試

pom.xml里配置jvmArguments參數(shù) -Xdebug -Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=n:

<build>
	<plugins>
		<plugin>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-maven-plugin</artifactId>
			<configuration>
				<jvmArguments>-Xdebug -Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=n</jvmArguments>
			</configuration>
		</plugin>
	</plugins>
</build>

加了此配置后,打包后的項目發(fā)布服務(wù)器,可支持遠(yuǎn)程DEBUG;

具體參數(shù)詳解:

-Xdebug 通知JVM工作在DEBUG模式下;

-Xrunjdwp 通知JVM使用(Java debug wire protocol)運(yùn)行調(diào)試環(huán)境。該參數(shù)同時包含了一系列的調(diào)試選項;

**transport **指定了調(diào)試數(shù)據(jù)的傳送方式,dt_socket是指用SOCKET模式,另有dt_shmem指用共享內(nèi)存方式,其中,dt_shmem只適用于Windows平臺;

address 調(diào)試服務(wù)器的端口號,客戶端用來連接服務(wù)器的端口號;

server=y/n VM 是否需要作為調(diào)試服務(wù)器執(zhí)行;

suspend=y/n 是否在調(diào)試客戶端建立連接之后啟動 VM;

4,IDEA打包jar

我們打包jar包;

右側(cè)Maven工具,雙擊 package打包工具;

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-3t35X1S1-1623688298215)(image-20210613224738500.jpg)]

一般打包跳過test,可以點(diǎn)擊箭頭所指閃電圖標(biāo),這樣打包速度會快很多;

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-gjGv5k7R-1623688298218)(image-20210613224828589.jpg)]

打包后,在target目錄下,會生成一個jar包;我們把它復(fù)制出來即可;

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-K5FN6ULx-1623688298222)(image-20210613224918420.jpg)]

5,啟動jar并且?guī)訁?shù)支持遠(yuǎn)程調(diào)試

我們把remote-debug-v1.0.jar放D盤根目錄;

我們啟動jar,并且支持遠(yuǎn)程DEBUG;

java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar remote-debug-v1.0.jar

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-RERGHClm-1623688298225)(image-20210613225414441.jpg)]

啟動OK,監(jiān)聽socket 5005端口

6,IDEA遠(yuǎn)程DEBUG配置

IDEA要進(jìn)行遠(yuǎn)程DEBUG,需要進(jìn)行配置;

1,啟動項下拉,選擇 Edit Configurations...編輯配置

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-3UGDXNMD-1623688298228)(image-20210613225801811.jpg)]

2,點(diǎn)擊+,選擇Remote,添加遠(yuǎn)程DEBUG配置

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-3rzwtdYm-1623688298229)(image-20210613230023399.jpg)]

3,添加遠(yuǎn)程DEBUG配置項,Host和Port,配置后,點(diǎn)擊ApplyOK按鈕

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-l0edF9KU-1623688298231)(image-20210613230200362.jpg)]

7,IDEA遠(yuǎn)程DEBUG測試

1,打測試斷點(diǎn)

我們直接在TestController類里的test方法上打點(diǎn)斷;

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-2MqDENbp-1623688298232)(image-20210613230809384.jpg)]

2,選擇遠(yuǎn)程debug啟動項,然后點(diǎn)擊測試調(diào)試按鈕啟動;

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-HWmN2f6b-1623688298234)(image-20210613230646749.jpg)]

3,postman測試

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-VJrvld2D-1623688298236)(image-20210613231151240.jpg)]

4,成功進(jìn)入斷點(diǎn)

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-BeCKrJS3-1623688298238)(image-20210613231235544.jpg)]

我們走完斷點(diǎn);

5,啟動的jar包打印信息,測試OK

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-waIbt2vf-1623688298241)(image-20210613231336792.jpg)]

8,eclipse遠(yuǎn)程DEBUG實現(xiàn)

1,右擊項目 -> Debug As -> Debug Configurations…

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-NCIa03JQ-1623688298243)(image-20210613232154571.jpg)]

2,找到 Remote Java Application 然后右擊 New

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-o1TZdUQg-1623688298245)(image-20210613232409021.jpg)]

3,配置HostPort,點(diǎn)擊Debug按鈕,即可實現(xiàn)遠(yuǎn)程DEBUG

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-pDNULzPO-1623688298248)(image-20210613232629335.jpg)]

9,打war包方式配置遠(yuǎn)程DEBUG

如果打的是war包,需要兩個步驟:

將 web 應(yīng)用部署到 Tomcat 的 webapp 目錄下

修改 Tomcat/bin/startup.bat 文件,在最前面加上如下代碼:

SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005

10,遠(yuǎn)程debug視頻教程+文檔+源碼下載

鏈接:https://pan.baidu.com/s/10tTqaONO8ShE8D9PKDObeQ
提取碼:paty

到此這篇關(guān)于因不會遠(yuǎn)程debug調(diào)試我被項目經(jīng)理嘲笑了的文章就介紹到這了,更多相關(guān)遠(yuǎn)程debug調(diào)試內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java異常中toString()和getMessage()區(qū)別

    Java異常中toString()和getMessage()區(qū)別

    在java異常體系中,要打印異常信息,可以通過:e.getMessage() 、 e.toString() e.printStackTrace() 等方法打印,本文主要介紹了Java異常中toString()和getMessage()區(qū)別,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • Maven如何打入依賴中指定的部分jar包

    Maven如何打入依賴中指定的部分jar包

    當(dāng)項目運(yùn)行的環(huán)境里已經(jīng)有一個jar包是pom文件依賴其他項目的jar包,所以最后得到的項目jar包中還需要打入其他項目的最新代碼,接下來通過本文給大家介紹Maven打入依賴jar包的操作工程,需要的朋友參考下吧
    2021-06-06
  • Spring Boot 集成 ElasticSearch應(yīng)用小結(jié)

    Spring Boot 集成 ElasticSearch應(yīng)用小結(jié)

    這篇文章主要介紹了Spring Boot 集成 ElasticSearch應(yīng)用小結(jié),本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-11-11
  • IDEA創(chuàng)建SpringBoot的maven項目的方法步驟

    IDEA創(chuàng)建SpringBoot的maven項目的方法步驟

    這篇文章主要介紹了IDEA創(chuàng)建SpringBoot的maven項目的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Java集合Set、List、Map的遍歷方法

    Java集合Set、List、Map的遍歷方法

    這篇文章主要介紹了Java集合Set、List、Map的遍歷方法,是非常實用的遍歷技巧,需要的朋友可以參考下
    2014-09-09
  • org.slf4j.Logger中info()方法的使用詳解

    org.slf4j.Logger中info()方法的使用詳解

    這篇文章主要介紹了org.slf4j.Logger中info()方法的使用詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • SpringBoot請求參數(shù)相關(guān)注解說明小結(jié)

    SpringBoot請求參數(shù)相關(guān)注解說明小結(jié)

    這篇文章主要介紹了SpringBoot請求參數(shù)相關(guān)注解說明,主要包括@PathVariable,@RequestHeader、@CookieValue、@RequestBody和@RequestParam,本文結(jié)合實例代碼給大家講解的非常詳細(xì),需要的朋友可以參考下
    2022-05-05
  • springboot+rabbitmq實現(xiàn)指定消費(fèi)者才能消費(fèi)的方法

    springboot+rabbitmq實現(xiàn)指定消費(fèi)者才能消費(fèi)的方法

    當(dāng)項目部署到測試環(huán)境后,QA測試過程中,總是“莫名其妙”的發(fā)現(xiàn)所保存的用戶付款單數(shù)據(jù)有問題。這篇文章主要介紹了springboot+rabbitmq實現(xiàn)指定消費(fèi)者才能消費(fèi),需要的朋友可以參考下
    2021-11-11
  • java:程序包org.springframework.boot不存在的完美解決方法

    java:程序包org.springframework.boot不存在的完美解決方法

    最近項目中運(yùn)行的時候提示了"java: 程序包org.springframework.boot不存在",下面這篇文章主要給大家介紹了關(guān)于java:程序包org.springframework.boot不存在的完美解決方法,需要的朋友可以參考下
    2023-05-05
  • Java設(shè)計模式之解釋器模式_動力節(jié)點(diǎn)Java學(xué)院整理

    Java設(shè)計模式之解釋器模式_動力節(jié)點(diǎn)Java學(xué)院整理

    解釋器模式是一個比較少用的模式,本人之前也沒有用過這個模式。下面我們就來一起看一下解釋器模式
    2017-08-08

最新評論