2014-09-19 61 views
5

我目前的開發過程是改變Java代碼,mvn包,ant更新,重啓我的tomcat服務器。我真的很想能夠添加斷點,並且現場調試我的DSpace實例。最近我遇到了一個有關oceanlink代碼的問題,並且想要調試,但不得不求助於println/log info來查看變量。在DSpace中,如何使用IntelliJ IDEA調試實時代碼?

我熟悉的wiki頁面:https://wiki.duraspace.org/display/DSPACE/IDE+Integration+-+DSpace+and+IDEA

我只是想知道關於這個問題,如果有更多的凝聚,近期指導。

+0

只是爲了確保我明白的問題:你已經運行行家,從思想內螞蟻和Tomcat?如果您在IntelliJ中啓動並停止Tomcat,則進入調試模式意味着打開啓動調試按鈕而不是tomcat的常規啓動按鈕。 – 2014-09-20 08:00:05

+0

在IDEA中不運行任何它。基本設置只是使用IDEA來查看和更改代碼。更改代碼後,我手動重新部署:mvn包,ant更新,tomcat重啓。在試圖遵循IntelliJ指南的時候,它提到了部署一個神器,我不知道該放什麼東西。 (Tomcat服務器配置的「部署」選項卡)。 – 2014-09-25 13:48:53

回答

5

我創建描述IDEA我們的開發者設置的視頻演示: https://www.youtube.com/watch?v=mrLl1qPsy6I

接近它顯示的視頻哪些模塊部署的結束以及如何安排的背景下路徑。以前的視頻

不到兩年後,這裏的最後調試視頻: https://www.youtube.com/watch?v=V5Zi71zYmf8

一個不包括在視頻超級強大的功能是「計算表達式」。當程序在斷點處暫停時,可以使用「求值表達式」對程序的當前狀態執行任意方法調用。

3

布拉姆提供了一個關於這個主題的出色教程,我可以推薦的另一個策略有時可以更快地設置遠程調試。

目標是在tomcat或DSpace CLI的現有已部署DSpace Web應用程序中進入「遠程調試模式」。然後你可以直接連接它,而不需要在Intellij中配置嵌入式tomcat。這很好,因爲它可以在本地使用本地主機完成,也可以通過網絡在現有開發服務器主機名/ IP上遠程完成。

  1. 選擇Run>編輯配置
  2. 選擇添加(+)的選項>遠程
  3. 配置遠程設置,設置相應的主機/端口配置爲您運行Tomcat或CLI主機位置,並提供一個適當的名稱( DSpace Remote)
  4. 將第一個文本框設置複製到您的tomcat或CLI實例的env設置中。

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

    4.a.對於[DSACE_HOME]/bin/dspace中的DSpace CLI,請在java命令之前添加以下行(請注意,我們將suspend設置爲y,以確保我們有機會在應用程序執行前連接到調試端口

    export JAVA_OPTS="$JAVA_OPTS -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005" 
    

    4.B有關Tomcat catalina.sh腳本在調試模式下啓動tomcat已經提供的Tomcat配置導出ENV設置。(注意,我們設置暫停爲n,這樣的tomcat正常啓動。

    export JPDA_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 
    %TOMCAT_HOME%/bin/catalina.sh jpda start 
    
  5. 一旦您已經啓動了CLI應用程序或Tomcat,然後您可以連接您配置的調試設置。首先從t中選擇您的調試配置他在工具欄上運行/調試下拉菜單,並使用「調試」圖標以調試模式啓動。

這將連接到調試端口(如果您有問題檢查防火牆限制)。您現在應該可以設置斷點,並在Intellij中在服務器上執行時逐步執行代碼。

注意事項是,您需要完成整個mvn build/ant部署才能將任何更改導入運行的tomcat/cli應用程序。爲了加快開發人員的週轉速度,最好直接在intellij中運行war/cli,並且使用Bram的教程非常適合此目的。但是,如果這不可行,這是能夠在現有的現場測試站點上進行調試的好選擇。

乾杯, 馬克