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

詳述IntelliJ IDEA遠(yuǎn)程調(diào)試Tomcat的方法(圖文)

 更新時(shí)間:2017年12月01日 09:13:39   作者:維C果糖  
本篇文章主要介紹了詳述IntelliJ IDEA遠(yuǎn)程調(diào)試Tomcat的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

在調(diào)試代碼的過程中,為了更好的定位及解決問題,有時(shí)候需要我們使用遠(yuǎn)程調(diào)試的方法。在本文中,就讓我們一起來看看,如何利用 IntelliJ IDEA 進(jìn)行遠(yuǎn)程 Tomcat 的調(diào)試。

首先,配置remote:

1

如上圖所示,點(diǎn)擊Edit Configurations,進(jìn)入如下界面:

2

如上圖所示,我們進(jìn)入了Run/Debug Configurations界面,然后點(diǎn)擊左上角的+,選擇Remote:

3

  1. 標(biāo)注 1:運(yùn)行遠(yuǎn)程 JVM 的命令行參數(shù);
  2. 標(biāo)注 2:傳輸方式,默認(rèn)為Socket;
  3. 標(biāo)注 3:調(diào)試模式,默認(rèn)為Attach;
  4. 標(biāo)注 4:服務(wù)器 IP 地址,默認(rèn)為localhost,需要修改為目標(biāo)服務(wù)器的真實(shí) IP 地址;
  5. 標(biāo)注 5:服務(wù)器端口號,默認(rèn)為5005,需要修改為目標(biāo)服務(wù)器的真實(shí)端口號;
  6. 標(biāo)注 6:搜索資源是使用的環(huán)境變量,默認(rèn)為<whole project>,即整個(gè)項(xiàng)目。

如上圖所示,其中 標(biāo)注 2 和 標(biāo)注 3 又分別有兩種分類,對于 標(biāo)注 2,

標(biāo)注 2:傳輸方式,默認(rèn)為Socket;

  1. Socket:macOS 及 Linux 系統(tǒng)使用此種傳輸方式;
  2. Shared memory: Windows 系統(tǒng)使用此種傳輸方式。

對于 標(biāo)注 3,

標(biāo)注 3:調(diào)試模式,默認(rèn)為Attach;

  1. Attach:此種模式下,調(diào)試服務(wù)端(被調(diào)試遠(yuǎn)程運(yùn)行的機(jī)器)啟動(dòng)一個(gè)端口等待我們(調(diào)試客戶端)去連接;
  2. Listen: 此種模式下,是我們(調(diào)試客戶端)去監(jiān)聽一個(gè)端口,當(dāng)調(diào)試服務(wù)端準(zhǔn)備好了,就會(huì)進(jìn)行連接。

然后,復(fù)制 標(biāo)注 1,即 IntelliJ IDEA 自動(dòng)生產(chǎn)的命令行參數(shù),然后導(dǎo)入到 Tomcat 的配置文件中。以 Linux 系統(tǒng)為例,導(dǎo)入語句為:

復(fù)制代碼 代碼如下:

export JAVA_OPTS='-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005'

如果是 Windows 系統(tǒng),則導(dǎo)入語句為:

復(fù)制代碼 代碼如下:

set JAVA_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005

兩者的區(qū)別在于導(dǎo)入語句的關(guān)鍵字不同以及有無引號,Linux 系統(tǒng)的導(dǎo)入關(guān)鍵字為export,Windows 為set;Linux 的導(dǎo)入值需要用單引號''括起來,而 Windows 則不用。

接下來,修改 Tomcat 的 bin 目錄下的catalina.sh文件(如果是 Windows 系統(tǒng)則修改catalina.bat文件),將上述的導(dǎo)入語句添加到此文件中即可:

4

至此,IntelliJ IDEA 遠(yuǎn)程調(diào)試 Tomcat 的配置已經(jīng)完成了,調(diào)試的后續(xù)步驟按正常的調(diào)試技巧進(jìn)行就可以啦!

+++++ 題外話:我是一個(gè)大彩蛋 +++++

在這里,我們假設(shè)服務(wù)器的 IP 地址為10.11.12.39,端口號為16203,設(shè)置完成后,進(jìn)入Debug模式,如果連接成功,則會(huì)出現(xiàn)如下提示:

5

此外,如果我們是跨多個(gè)系統(tǒng)進(jìn)行調(diào)試,則只需要在想要調(diào)試的系統(tǒng)中配置Remote,打上斷點(diǎn),啟動(dòng)Debug模式,然后在服務(wù)開始的地方執(zhí)行程序即可進(jìn)入到我們設(shè)置的斷點(diǎn)。而且,如果我們在本地配置Remote并關(guān)聯(lián)到某個(gè) Tomcat,在Debug模式下,所有涉及到斷點(diǎn)所在代碼的功能,都會(huì)進(jìn)入我們設(shè)置的斷點(diǎn)。

例如,對于服務(wù)器上的 Tomcat A,多個(gè)系統(tǒng)都用到了這個(gè) Tomcat,如訂單子系統(tǒng)、賬戶子系統(tǒng)、路由子系統(tǒng)等,并且多個(gè)系統(tǒng)間互相調(diào)用,如訂單子系統(tǒng)調(diào)了賬戶子系統(tǒng),賬戶子系統(tǒng)又調(diào)了路由子系統(tǒng),則當(dāng)我們在這三個(gè)子系統(tǒng)中配置Remote并在對應(yīng)的代碼(如在訂單子系統(tǒng)中查詢商戶的賬戶信息,則調(diào)到賬戶子系統(tǒng);在賬戶子系統(tǒng)中又通過路由子系統(tǒng)調(diào)到其他底層服務(wù)查詢商戶的賬戶余額等)上打上斷點(diǎn),啟動(dòng)Debug模式之后,通過單元測試或者頁面操作觸發(fā)訂單子系統(tǒng)中的查詢商戶的賬戶信息功能,則會(huì)依次進(jìn)入到在上述三個(gè)子系統(tǒng)中設(shè)置的斷點(diǎn)。

此外,在我們配置完遠(yuǎn)程調(diào)試之后,就算別人啟動(dòng)相關(guān)服務(wù),也會(huì)進(jìn)入到我們的斷點(diǎn),而且會(huì)受到我們設(shè)置的斷點(diǎn)的影響,只有在我們執(zhí)行完測試之后,服務(wù)才會(huì)繼續(xù)執(zhí)行下去。最后,遠(yuǎn)程調(diào)試的功能真的很強(qiáng)大,善用遠(yuǎn)程調(diào)試,遠(yuǎn)離 Bug!

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java雙向鏈表倒置功能實(shí)現(xiàn)過程解析

    Java雙向鏈表倒置功能實(shí)現(xiàn)過程解析

    這篇文章主要介紹了Java雙向鏈表倒置功能實(shí)現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • 創(chuàng)建并運(yùn)行一個(gè)java線程方法介紹

    創(chuàng)建并運(yùn)行一個(gè)java線程方法介紹

    這篇文章主要介紹了創(chuàng)建并運(yùn)行一個(gè)java線程,涉及線程代碼示例,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • java.text.DecimalFormat類十進(jìn)制格式化

    java.text.DecimalFormat類十進(jìn)制格式化

    這篇文章主要為大家詳細(xì)介紹了java.text.DecimalFormat類十進(jìn)制格式化的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • SpringBoot下RabbitMq實(shí)現(xiàn)定時(shí)任務(wù)

    SpringBoot下RabbitMq實(shí)現(xiàn)定時(shí)任務(wù)

    這篇文章主要為大家詳細(xì)介紹了SpringBoot下RabbitMq實(shí)現(xiàn)定時(shí)任務(wù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • JAVA設(shè)計(jì)模式---單例模式你知道嗎

    JAVA設(shè)計(jì)模式---單例模式你知道嗎

    這篇文章主要給大家介紹了關(guān)于Java單例模式,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-09-09
  • SpringBoot各種注解詳解

    SpringBoot各種注解詳解

    SpringBoot的一個(gè)核心功能是IOC,就是將Bean初始化加載到容器中,Bean是如何加載到容器的,可以使用SpringBoot注解方式或者Spring XML配置方式。SpringBoot注解方式減少了配置文件內(nèi)容,更加便于管理,并且使用注解可以大大提高了開發(fā)效率
    2022-12-12
  • IDEA2021安裝及常用功能設(shè)置

    IDEA2021安裝及常用功能設(shè)置

    這篇文章主要介紹了IDEA2021安裝及常用功能設(shè)置,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08
  • Java中l(wèi)ist集合的clear方法及空字符串的區(qū)別

    Java中l(wèi)ist集合的clear方法及空字符串的區(qū)別

    這篇文章主要介紹了Java中l(wèi)ist集合的clear方法及空字符串的區(qū)別,在使用list?結(jié)合的時(shí)候習(xí)慣了?list=null?;在創(chuàng)建這樣的方式,但是發(fā)現(xiàn)使用list的clear?方法很不錯(cuò),尤其是有大量循環(huán)的時(shí)候<BR>list.clear()與list?=?null?區(qū)別,需要的朋友可以參考下
    2023-08-08
  • Java對象和Json文本轉(zhuǎn)換工具類的實(shí)現(xiàn)

    Java對象和Json文本轉(zhuǎn)換工具類的實(shí)現(xiàn)

    Json?是一個(gè)用于Java對象和Json文本相互轉(zhuǎn)換的工具類,本文主要介紹了Java對象和Json文本轉(zhuǎn)換工具類,具有一定的參考價(jià)值,感興趣的可以了解一下
    2022-03-03
  • Java?BasePooledObjectFactory?對象池化技術(shù)的使用

    Java?BasePooledObjectFactory?對象池化技術(shù)的使用

    這篇文章主要介紹了Java?BasePooledObjectFactory?對象池化技術(shù),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-04-04

最新評論