国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
使用Eclipse遠(yuǎn)程調(diào)試(翻譯)
  翻譯文章網(wǎng)址:http://www.jacoozi.com/index.php?option=com_content&task=view&id=119&Itemid=134

試圖修復(fù)服務(wù)器端的Java問題,花費(fèi)大量時(shí)間獲取問題源的經(jīng)歷不知道發(fā)生了多少次?調(diào)試器可以顯著地縮短錯(cuò)誤發(fā)現(xiàn)時(shí)間而且使調(diào)試過程更加變得享受。這篇文章將探索如何在Eclipse中使用遠(yuǎn)程調(diào)試器。

文章內(nèi)容:

Java調(diào)試器

調(diào)試Weblogic

調(diào)試IBM WebSphere 5.x/6.x

調(diào)試JBoss

JBoss中熱交換代碼

調(diào)試Tomcat

調(diào)試JSP頁面

調(diào)試器驗(yàn)證

參考

系統(tǒng)信息

Java調(diào)試器

Java調(diào)試器(jdb)是一個(gè)動(dòng)態(tài)的,可控的,基于任務(wù)的調(diào)試工具。它幫助找到并修復(fù)本地的和服務(wù)器端的Java語言的臭蟲。為了在J2EE應(yīng)用服務(wù)器中使用jdb,首先必須讓eclipse中的調(diào)試成為可用,而且將通過JPDA端口(默認(rèn)端口是1044)的調(diào)試和服務(wù)器關(guān)聯(lián)在一起。

J2EE服務(wù)器缺省的JPDA選項(xiàng)如下:

-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044

Jdb參數(shù)指定調(diào)試器操作方式。例如transport=dt_socket告訴JVM調(diào)試器將會(huì)通過socket連接,然而address=1044通知端口號(hào)是1044.類似地,如果你設(shè)置suspend=y,JVM將會(huì)以掛起模式(suspended mode)啟動(dòng),保持掛起狀態(tài)直到調(diào)試器關(guān)聯(lián)上它。如果想一啟動(dòng)JVM就想啟動(dòng)調(diào)試,那么這將是有幫助的。

調(diào)試Weblogic

調(diào)試Weblogic和調(diào)試其他Java遠(yuǎn)程應(yīng)用沒有什么區(qū)別。需要確保啟動(dòng)Weblogic時(shí)設(shè)置了必須的調(diào)試參數(shù),而且連接了調(diào)試器。就Weblogic8.1來說,需要增加下列參數(shù)在啟動(dòng)腳本中。Weblogic提供多個(gè)啟動(dòng)腳本(*.sh*.cmd),腳本位置在BEA_HOME/weblogic81/server/bin目錄下。

1.      找到startWSL.cmd并且增加下列變量DEBUG_OPTS:

set DEBUG_OPTS = -Xdebug -Xrunjdwp:transport= dt_socket,address=1044,server=y,suspend=n

2.      接下來,插入新變量在Weblogic啟動(dòng)命令中,放在"%JAVA_HOME%\bin\java"后和其他參數(shù)前。

3.      啟動(dòng)腳本類似于下面的腳本:

"%JAVA_HOME%\bin\java" %DEBUG_OPTS% %JAVA_VM% %MEM_ARGS% %JAVA_OPTIONS%-Dweblogic.Name=%SERVER_NAME% -Dweblogic.management.username= %WLS_USER%-Dweblogic.management.password= %WLS_PW% -Dweblogic.management.server= %ADMIN_URL%-Dweblogic.ProductionModeEnabled= %PRODUCTION_MODE%-Djava.security.policy= "%WL_HOME%\server\lib\weblogic.policy" weblogic.Server

 

調(diào)試IBM WebSphere 5.x/6.x

1.      打開WebSphere 5.X/6.X控制臺(tái)

2.      打開Servers | Application Servers | [SERVERNAME] | Process Definition | Java Virtual Machine

3.      注冊(cè)Debug Mode

4.      Debug arguments域中編輯參數(shù)。可以粘貼下面的的代碼,使用相同的1044端口從eclipse調(diào)試:

-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=1044

調(diào)試JBoss

除了需要修改JBOSS_HOME/bin下的run.bat/run.sh外,其他和WebLogic相同。

Linux用戶可以看到類似于如下的配置:

$ cd /var/jboss4/bin

 $ sh ./run.sh

 =========================================================================

 

 JBoss Bootstrap Environment

 JBOSS_HOME: /var/jboss4

 JAVA: /usr/java/j2sdk1.4.2_06/bin/java

 JAVA_OPTS: -server -Xms128m -Xmx128m -Dprogram.name=run.sh

 DEBUG_OPTS = -Xdebug -Xrunjdwp:transport= dt_socket,address=1044,server=y,suspend=n

 CLASSPATH: /var/jboss4/bin/run.jar:/usr/java/j2sdk1.4.2_06/lib/tools.jar

 =========================================================================

JBoss中的熱交換代碼(Hot Swapping Code)

假如JBoss根目錄在C:\JBoss,應(yīng)用程序的classpathC:\classes\myapp。通過設(shè)置這個(gè)目錄為項(xiàng)目輸出目錄來告訴Eclipse編譯應(yīng)用程序到這個(gè)目錄下。這樣基本上可以工作了,但是有點(diǎn)隱患。

如果每次都使用Ant腳本來build-clean,或許想確保輸出目錄的內(nèi)容不要偶然地被Eclipse清除掉。由于Eclipse有項(xiàng)目的清除功能,這種功能能容易重?fù)粽麄€(gè)目錄從而僅僅得到類文件。為此,為了保持Ant生成的文件和Eclipse將生成的*.class文件在一起,你必須告訴Eclipse你的輸出目錄。

1.      首先設(shè)置Java項(xiàng)目輸出目錄。假設(shè)JBoss應(yīng)用程序的classpathEclipse工作空間之外,這樣設(shè)置一個(gè)鏈接的目錄將是個(gè)不錯(cuò)的選擇。

2.      打開File | New | Folder。

3.      輸入classes作為目錄名字,點(diǎn)擊Advanced,指定新目錄為C:\classes\myapp。

4.      在項(xiàng)目屬性頁,修改輸出目錄為新創(chuàng)建的classes目錄。點(diǎn)擊Project | Properties | Java Build Path,在Default output foder中寫入如下值。

5.      打開Window | Preferences... | General | Workspace,選中Build automatically。

6.      最后,告訴Eclipse不要每次編譯項(xiàng)目的時(shí)候刪除輸出目錄的其他文件。依然在Preferences中打開Java | Compiler | Building,不要選中Scrub output folders when cleaning projects。這就是說,現(xiàn)在每次你保存Java文件,Eclipse會(huì)重新編譯它而且JBoss也會(huì)重新加載它。


調(diào)試Tomcat

調(diào)試Tomcat非常類似于WeblogicJBoss,但是需要修改TOMCAT_HOME/bin下的catalina.bat/catalina.sh文件。

Tomcat是一個(gè)特殊的情況,因?yàn)樗軌蛘{(diào)試和發(fā)布置換熱代碼(hot code)。

Eclipse中使用Sysdeo Tomcat Plugin

SysdeoEclipse下小而強(qiáng)大的Tomcat插件。和其他插件一起使用Sysdeo將會(huì)讓你調(diào)試Tomcat和重新加載上下文。

1.      首先從Sysdeo網(wǎng)站下載插件

2.      解壓文件到ECLIPSE_HOME/plugins目錄

3.      啟動(dòng)Eclipse,打開Window | Preferences... | Tomcat.

4.      在插件參數(shù)頁,指定Tomcat版本和主目錄。在Tomcat中有兩種聲明上下文的方式。比較新的方式是在TOMCAT_HOME/conf/Localhost下創(chuàng)建上下文文件。在Preferences | Tomcat | Context declaration mode下選擇Context files,設(shè)置Context files為自動(dòng)選擇(Tomcat 5.5.12)

5.      關(guān)閉Preferences。打開任意一個(gè)透視圖,將能看到工具欄上3個(gè)cat按鈕。啟動(dòng)Tomcat,點(diǎn)擊第一個(gè)圖標(biāo)。這將創(chuàng)建一個(gè)新服務(wù)器進(jìn)程,Eclipse調(diào)試器將會(huì)自動(dòng)附加上去。調(diào)試模式可以通過Preferences頁來修改。

6.      如果打算調(diào)試代碼,也可以增加項(xiàng)目到Tomcat源和classpath查找路徑。需要關(guān)注的一點(diǎn),就是插件將會(huì)改變Tomcat輸出到Eclipse控制臺(tái)。另一個(gè)重要的事情就是附加或者預(yù)先將JAR文件放到classpath或者傳遞JVM參數(shù)到啟動(dòng)器。這些可以在插件參數(shù)頁上設(shè)置。

配置可重新加載的Tomcat上下文

如果你無論如何也不想使用Sysdeo,那么也可以很容易的調(diào)試Tomcat

  1. 首先為應(yīng)用創(chuàng)建一個(gè)新的Tomcat上下文,打開TOMCAT_HOME\conf\Catalina\localhost,創(chuàng)建一個(gè)新文件,例如myapp.xml。這將成為你url的一部分,因此如果你要訪問你的程序,你可以輸入http://localhost:8080/myapp

  2. 輸入下面的內(nèi)容在myapp.xml

  3. <Context docBase="c:/eclipse_workspace/myapp/WebRoot" path="/HelloWorld"/

假設(shè)你在c:/eclipse_workspace/myapp/WebRoot中有一個(gè)包含WEB-INFweb應(yīng)用

  1. 創(chuàng)建兩個(gè)環(huán)境變量:

  2. C:\>set JDPA_ADDRESS=1044

  3. C:\>set JDPA_TRANSPORT=dt_socket

  4. 現(xiàn)在可以用下面的調(diào)試參數(shù)來啟動(dòng)Tomcat

  5. C:\Tomcat-5.5.12\bin\>catalina jdpa start

  6. 使用Eclipse通過1044來連接Tomcat

Tomcat中熱交換代碼和自動(dòng)上下文重載

在一些情況下,調(diào)試需要包含一些在變化的類,當(dāng)然希望調(diào)試器用的是最新的變動(dòng)代碼而且準(zhǔn)確無誤的重新加載它們。這是最正常的情況了,但是不是總都這樣。為了重新加載上下文環(huán)境,你必須定義上下文環(huán)境為reloadable。

打開myapp.xml修改它:

<Context docBase="c:/eclipse_workspace/myapp/WebRoot" path="/HelloWorld" reloadable="true"/>

現(xiàn)在上下文將會(huì)在每次改變?nèi)魏?/span>Java文件的時(shí)候都會(huì)重載。注意加載時(shí)需要花費(fèi)一些時(shí)間的,尤其如果應(yīng)用程序比較大的話。類似的,如果你有比較復(fù)雜的啟動(dòng)servlet,你可能希望讓自動(dòng)重載無效,因?yàn)榧词故亲钚〉淖儎?dòng)都會(huì)導(dǎo)致整個(gè)環(huán)境重新加載。

調(diào)試JSP頁面

Eclipse中調(diào)試JSP,可以通過好幾種方式。最簡(jiǎn)單的方法就是使用一些商業(yè)插件用于在建支持JSP調(diào)試。這樣的插件有MyEclipse和另外一種Nitrox。除了提供JSP調(diào)試外,這些商業(yè)插件還提供很多其他功能,例如數(shù)據(jù)庫資源管理器,XML編輯器,UMLERD圖等等。這些插件的副作用是環(huán)境變得越來越大,反應(yīng)也會(huì)變慢。從我的經(jīng)歷來看,這些插件導(dǎo)致Eclipse相當(dāng)?shù)穆?,而且有時(shí)環(huán)境變得很不穩(wěn)定。類似的,這些耗費(fèi)大內(nèi)存的插件是導(dǎo)致頻繁內(nèi)存溢出異常和隨后的環(huán)境崩潰的原因。長(zhǎng)話短說,我最終決定還是使用最基本的。當(dāng)我意識(shí)到調(diào)試JSP可以不用任何插件時(shí),建立這個(gè)過程稍微多會(huì)花些時(shí)間,但是回報(bào)的卻是快速和穩(wěn)定的環(huán)境。

在知道了JSP被轉(zhuǎn)化為Java文件后,調(diào)試JSP變得很容易。這個(gè)轉(zhuǎn)化發(fā)生在運(yùn)行時(shí),JSP只存在在它們被javac編譯前。在這個(gè)例子中我將使用JBoss,然而可以使用類似的技術(shù)到其他服務(wù)器上。由于JBoss使用jasperjavac來生成和編譯Java,因此首先創(chuàng)建一個(gè)用于Java工程,其源代碼指向JBoss JSP輸出目錄。這個(gè)工程和普通的Java工程有一個(gè)顯著的區(qū)別:源目錄的大小將會(huì)不斷的變化,主要是因?yàn)?/span>JBosss要重新編譯JSP。

跟隨下面的步驟來建立EclipseJSP調(diào)試:

1.      啟動(dòng)JBoss

2.      定位到JBoss編譯JSP的地方。這主要依賴于你發(fā)布是WAR包和你的真實(shí)的服務(wù)器配置,你可以找到類似于下面的位置:JBOSS_HOME\server\j2ee\work\jboss.web\localhost\myapp

3.      啟動(dòng)Eclipse,打開File | New | Other....選擇Java Project點(diǎn)擊Next。

4.      New Java Project頁,輸入項(xiàng)目名稱,例如my_jsp.其他想保持缺省狀態(tài),點(diǎn)擊Finish。

5.      創(chuàng)建一個(gè)新目錄鏈接到JBOSS_HOME\server\j2ee\work\jboss.web\localhost\myapp。這個(gè)目錄將會(huì)在以后成為項(xiàng)目源代碼目錄

6.      使src成為源代碼目錄。打開File | New | Source Folder

7.      點(diǎn)擊Browse而且選擇src,點(diǎn)擊Finish。保持和下面的對(duì)話框一致。

8.      在上面的對(duì)話框里,修改項(xiàng)目輸出目錄為src

9.      Eclipse將會(huì)試圖編譯my_jsp,但是將會(huì)看到許多問題。為了項(xiàng)目能夠正確編譯兩個(gè)主要問題必須解決。首先,jasper庫必須加入項(xiàng)目的classpath中,第二必須指出Java代碼工程my_java_code(假設(shè)分離Java項(xiàng)目主機(jī)域類和servlet)。

10.  打開Project properties,增加下面的庫到classpath

11.  JBOSS_HOME/server/j2ee/deploy/jbossweb-tomcat50.sar/jasper-runtime.jar

12.  JBOSS_HOME/server/j2ee/lib/javax.servlet.jsp.jar

13.  而且,點(diǎn)擊Project頁增加my_java_codeclasspath。現(xiàn)在my_jsp工程classpath如下所示:

<?xml version="1.0" encoding="UTF-8"?>

<classpath>

   <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>

   <classpathentry excluding="src/" kind="src" path=""/>

   <classpathentry kind="src" path="src"/>

   <classpathentry kind="lib" path="C:/jboss-4.0.1sp1/server/j2ee/deploy/jbossweb-tomcat50.sar/jasper-runtime.jar"/>

   <classpathentry kind="lib" path="C:/jboss-4.0.1sp1/server/j2ee/lib/javax.servlet.jsp.jar"/>

   <classpathentry combineaccessrules="false" kind="src" path="/my_java_code"/>

   <classpathentry kind="output" path="src"/>

</classpath>

14.  打開Project | Build Project。這次編譯應(yīng)該沒問題了。

15.  啟動(dòng)JBoss。使用Eclipse調(diào)試器開始調(diào)試會(huì)話

16.  打開一個(gè)瀏覽器訪問幾個(gè)頁面?;氐?/span>Eclipse,右鍵點(diǎn)擊my_jsp選擇Refresh。你將會(huì)看到多出Java的類文件。

17.  在任何類上雙擊,打開_jspService方法,設(shè)置一個(gè)斷點(diǎn)。返回到瀏覽器點(diǎn)擊Refresh

JSP頁面將會(huì)關(guān)聯(lián)上來,你就可以進(jìn)入代碼了。當(dāng)調(diào)試器靜進(jìn)入響應(yīng)JSP頁面的Java類,JSP編輯器將會(huì)自動(dòng)鏈接起來,你將會(huì)自動(dòng)進(jìn)入JSP代碼的感覺。所有變量將會(huì)被賦值,然后你真實(shí)的在調(diào)試任何Java類?,F(xiàn)在大功告成了。

調(diào)試器驗(yàn)證

現(xiàn)在可以在調(diào)試模式下啟動(dòng)你的應(yīng)用程序。只需要確保服務(wù)器正在監(jiān)聽1044端口,你可以運(yùn)行netstat /a.你將會(huì)在打開的端口列表中看到1044端口。(參見圖: 打開端口列表: netstat -a)


     打開端口的列表
: netstat -a

Eclipse連接

在保證weblogic正在端口1044上監(jiān)聽正在來到的連接后,剩下的事就是要告訴Eclipse連接這個(gè)端口,你可以準(zhǔn)備調(diào)試了。

1.      Eclipse里,打開Run | Debug(參見圖: Eclipse中創(chuàng)建遠(yuǎn)程Java應(yīng)用配置)。

2.      在左邊列中選擇Remote Java Application,在列的底部點(diǎn)擊New

3.      Create configuration界面上,將被提示輸入一些值。首先設(shè)置一個(gè)有意義的名詞。在我的例子中設(shè)置為WebLogic Instance。對(duì)于項(xiàng)目,選擇你想調(diào)試的包含源代碼的Java工程。保留Connection Type為缺省值,等等Standard (Socket Attach)。對(duì)于Host,輸入localhost。如果想調(diào)試遠(yuǎn)程服務(wù)器,輸入主機(jī)名或者IP地址。對(duì)于端口,輸入1044或者輸入你定義在Weblogic啟動(dòng)腳本中的端口

4.      點(diǎn)擊Apply

5.      確保Weblogic實(shí)例運(yùn)行在調(diào)試模式。在界面上點(diǎn)擊Debug。Eclipse應(yīng)該自動(dòng)進(jìn)入Debug透視圖,可以看到Debug試圖下的堆棧跟蹤。

6.      如果沒有自動(dòng)進(jìn)入Debug透視圖,選擇Window | Open Perspective | Other然后點(diǎn)擊Debug。

Eclipse中創(chuàng)建遠(yuǎn)程Java應(yīng)用配置


Eclipse調(diào)試器中的斷點(diǎn)

Eclipse調(diào)試窗口應(yīng)該自動(dòng)在你第一個(gè)斷點(diǎn)處自動(dòng)彈出棧(參見圖: Eclipse調(diào)試器中的斷點(diǎn))。然后,你可以使用調(diào)試器提供的所有功能,即變量值、進(jìn)入代碼,drop to frame等等。

參考

       Debugging J2EE Applications

       Connecting to a Remote VM with the Java Remote Application Launcher

       Debugging with the Eclipse Platform

系統(tǒng)信息

       Windows XP Professional

       JDK 1.4.2_07

       Eclipse 3.2

       BEA WebLogic 8.1

       JBoss 4.0.2

       Tomcat 5.5.12

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
真正的java學(xué)習(xí)從入門到精通
myeclipse 10 優(yōu)化
java學(xué)習(xí)入門建議-摘自CSDN熱心網(wǎng)友們的回復(fù)-感謝--
常用的java應(yīng)用服務(wù)器
給初學(xué)者之六:java企業(yè)級(jí)應(yīng)用之綜合篇
JBoss、Geronimo及Tomcat比較分析-華軍資訊
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服