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

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

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

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

首先,配置remote:

1

如上圖所示,點擊Edit Configurations,進入如下界面:

2

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

3

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

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

標注 2:傳輸方式,默認為Socket;

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

對于 標注 3,

標注 3:調(diào)試模式,默認為Attach;

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

然后,復(fù)制 標注 1,即 IntelliJ IDEA 自動生產(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 遠程調(diào)試 Tomcat 的配置已經(jīng)完成了,調(diào)試的后續(xù)步驟按正常的調(diào)試技巧進行就可以啦!

+++++ 題外話:我是一個大彩蛋 +++++

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

5

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

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

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

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

相關(guān)文章

  • Spring?Boot實現(xiàn)多數(shù)據(jù)源連接和切換的解決方案

    Spring?Boot實現(xiàn)多數(shù)據(jù)源連接和切換的解決方案

    文章介紹了在SpringBoot中實現(xiàn)多數(shù)據(jù)源連接和切換的幾種方案,并詳細描述了一個使用AbstractRoutingDataSource的實現(xiàn)步驟,感興趣的朋友一起看看吧
    2025-01-01
  • java異常處理的簡單練習(xí)

    java異常處理的簡單練習(xí)

    下面小編就為大家?guī)硪黄猨ava異常處理的簡單練習(xí)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-06-06
  • springboot多環(huán)境進行動態(tài)配置的方法

    springboot多環(huán)境進行動態(tài)配置的方法

    這篇文章主要介紹了springboot多環(huán)境下如何進行動態(tài)配置,本文主要分享了如何在springboot的項目中使用多環(huán)境配置,重點是”spring.profiles.active“屬性,需要的朋友可以參考下
    2022-06-06
  • 淺談System.getenv()和System.getProperty()的區(qū)別

    淺談System.getenv()和System.getProperty()的區(qū)別

    這篇文章主要介紹了System.getenv()和System.getProperty()的區(qū)別,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Spring Boot 中的 @Field 注解的原理解析

    Spring Boot 中的 @Field 注解的原理解析

    本文詳細介紹了 Spring Boot 中的 @Field 注解的原理和使用方法,通過使用 @Field 注解,我們可以將 HTTP 請求中的參數(shù)值自動綁定到 Java 對象的屬性上,簡化了開發(fā)過程,提高了開發(fā)效率,感興趣的朋友跟隨小編一起看看吧
    2023-07-07
  • mybatis代碼生成+自定義注解+自定義注釋實例

    mybatis代碼生成+自定義注解+自定義注釋實例

    這篇文章主要介紹了mybatis代碼生成+自定義注解+自定義注釋實例,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • SpringBoot中使用Guava實現(xiàn)單機令牌桶限流的示例

    SpringBoot中使用Guava實現(xiàn)單機令牌桶限流的示例

    本文主要介紹了SpringBoot中使用Guava實現(xiàn)單機令牌桶限流的示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • Java流程控制之循環(huán)結(jié)構(gòu)for,增強for循環(huán)

    Java流程控制之循環(huán)結(jié)構(gòu)for,增強for循環(huán)

    這篇文章主要介紹了Java流程控制之循環(huán)結(jié)構(gòu)for,增強for循環(huán),for循環(huán)是編程語言中一種循環(huán)語句,而循環(huán)語句由循環(huán)體及循環(huán)的判定條件兩部分組成,其表達式為:for(單次表達式;條件表達式;末尾循環(huán)體){中間循環(huán)體;},下面我們倆看看文章內(nèi)容的詳細介紹
    2021-12-12
  • Java Scanner的使用和hasNextXXX()的用法說明

    Java Scanner的使用和hasNextXXX()的用法說明

    這篇文章主要介紹了Java Scanner的使用和hasNextXXX()的用法說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • Java設(shè)計模式之中介者模式的實現(xiàn)方式

    Java設(shè)計模式之中介者模式的實現(xiàn)方式

    Java中介者模式是一種行為型設(shè)計模式,它通過一個中介者對象來協(xié)調(diào)多個對象之間的交互,降低對象之間的耦合度,提高系統(tǒng)的可維護性和可擴展性。本文將介紹該設(shè)計模式的原理、使用場景和實現(xiàn)方法
    2023-04-04

最新評論

温州市| 屏南县| 涪陵区| 柏乡县| 泾阳县| 武平县| 西峡县| 灵川县| 乳山市| 龙川县| 广安市| 鹿邑县| 甘南县| 乌拉特前旗| 平邑县| 阿瓦提县| 台南县| 广灵县| 广灵县| 晴隆县| 淮北市| 山东| 武城县| 永靖县| 东城区| 贺州市| 千阳县| 宜黄县| 中山市| 东丰县| 安岳县| 古浪县| 铜山县| 汝阳县| 彭阳县| 夏河县| 定襄县| 乾安县| 榆社县| 土默特右旗| 涡阳县|