国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

配置Eclipse進行遠程調試

2019-11-18 16:06:25
字體:
來源:轉載
供稿:網友

  如果J2EE開發者在應用服務器上部署了應用,想在Eclipse的IDE(集成開發環境)下調試該應用,他可以利用Eclipse IDE的遠程調試器連接到應用服務器上進行調試。如果沒有這個調試器,出錯信息就只能從應用服務器的錯誤日志里獲取。

  借助于Eclipse的遠程調試器,你可以在應用程序中設置斷點,然后在Eclipse里調試應用。當應用在諸如JBoss之類的服務器端運行出錯時,應用就被掛起,Eclipse IDE的Debug視圖顯示產生錯誤的那一行。在下面的演示里我們將在Eclipse中對JBoss服務器上的應用進行調試。

  開始測試之前我們要做以下工作:
  1.啟動JBoss服務器。
  2.將Eclipse的遠程調試器連接到JBoss服務器上。
  3.在Eclipse的圖形界面下進行調試。

  我們將編寫一個servlet應用示例并將其部署到JBoss服務器上。起初該servlet以無錯方式運行,接著我們引入錯誤以演示Eclipse的遠程調試功能。


安裝準備工作

1.下載jboss-4.0.2.zip文件。
2.將該zip文件解壓到安裝目錄完成JBoss 4.02應用服務器的安裝。
3.下載Eclipse 3.0 或 Eclipse 3.02的zip安裝文件eclipse-SDK-3.0-win32.zip。
4.安裝Eclipse 3/3.02的IDE開發環境

用Eclipse開發一個JBoss應用

安裝完JBoss服務器和Eclipse IDE之后,我們開發一個servlet應用以便在JBoss服務器上運行和調試。servlet應用示例由一個doGet方法組成,它能在瀏覽器里輸出字符串信息。

JBossServlet.java示例的代碼如下:

package servlets;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class JBossServlet extends HttpServlet {
  public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
      throws ServletException, IOException {
    PRintWriter out = response.getWriter();
    out.println("Eclipse Remote Debugging");
  }
}


為web應用創建目錄結構。先創建WEB-INF目錄,然后在該目錄下創建classes目錄。為servlet示例創建名為servlets的java包目錄,并將JBossServlet.java文件拷貝到該目錄。為web應用創建部署描述文件web.xml并拷貝到WEB-INF目錄中,該文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app
xmlns="http://java.sun.com/xml/ns/j2ee" version="2.4"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

<servlet>
    <display-name>JBossServlet</display-name>
    <servlet-name>JBossServlet</servlet-name>
    <servlet-class>servlets.JBossServlet</servlet-class>
</servlet>
<servlet-mapping>
     <servlet-name>JBossServlet</servlet-name>
     <url-pattern>/catalog</url-pattern>
</servlet-mapping>

</web-app>


  servlet示例映射的URL路徑為/catalog。web應用的目錄結構如下:
     /WEB-INF
            
   web.xml classes
                
                 servlets
                      
                     JBossServlet.class

用Ant編譯和部署

  Web應用的編譯、打包和部署是在Eclipse IDE中根據Ant build.xml文件完成的。我們用一個由若干個target(目標)元素組成的Ant build.xml文件來編譯JBossServlet.java,然后以webapp.war的文件格式打包、部署web應用。build.xml文件如下:

<project name="jbossApp" default="webapp" basedir="."> 
<property name="build" value="build"/>
<property name="src" value="." />
<property name="jboss.deploy"
value="C:JBossjboss-4.0.2serverdefaultdeploy"/>
<property name="dist" value="dist"/>
<property name="j2sdkee" value="C:J2sdkee1.4"/>
<target name="init">
    <tstamp/>
  <mkdir dir="${build}" />
  <mkdir dir="${dist}" />
  <mkdir dir="${build}/WEB-INF" />
  <mkdir dir="${build}/WEB-INF/classes" />
</target>
<target name="compile" depends="init">
  <javac debug="true" classpath="${j2sdkee}/lib/j2ee.jar"
  srcdir="${src}/WEB-INF/classes"

  destdir="${src}/WEB-INF/classes">
    <include name="**/*.java" />
  </javac>
  <copy todir="${build}/WEB-INF">
    <fileset dir="WEB-INF" >
      <include name="web.xml" />
    </fileset>
  </copy>
<copy todir="${build}/WEB-INF/classes">
    <fileset dir="${src}/WEB-INF/classes" >
      <include name="**/JBossServlet.class" />
    </fileset>
  </copy>
</target>
<target name="webapp" depends="compile">
<war basedir="${build}" includes="**/*.class"
destfile="${dist}/webapp.war"  webxml="WEB-INF/web.xml"/>
<copy file="${dist}/webapp.war" todir="${jboss.deploy}"/>
  </target>
</project>


build.xml文件中的屬性如下表所示:


配置Eclipse進行遠程調試(圖一)



build.xml文件中還有以下幾個目標元素:

配置Eclipse進行遠程調試(圖二)



  把編譯目標中javac任務的debug屬性設為true意味著以debug模式進行編譯。對于采用debug模式編譯的應用,如果它在JBoss服務器上運行時出現異常,產生異常的代碼行號將會在Eclipse的Debug視圖中被顯示出來。

回到Eclipse

在Eclipse IDE中創建一個新項目,選擇File -> New -> Project,如圖1所示。


配置Eclipse進行遠程調試(圖三)


圖1 新項目

圖中顯示的是New Project屏。在New Project向導中,選擇Java -> Java Project,點擊Next按鈕進入New Java Project屏。在該屏中指定項目名稱(比如EclipseJBoss),然后點擊Next按鈕,如圖2所示。


配置Eclipse進行遠程調試(圖四)


圖2 創建一個Java項目

在Java Settings屏中,點擊Add Folder按鈕為項目添加源程序文件夾,如圖3所示。


配置Eclipse進行遠程調試(圖五)


圖3 添加源程序文件夾

接下來出現的是New Source Folde屏。在該屏中指定文件夾名稱(比如src)并將文件夾添加到項目中。此時會出現一個提示信息,詢問是否更新源程序文件夾和輸出文件夾。在New Java Project屏中點擊Finish按鈕完成項目創建,如圖4所示。


配置Eclipse進行遠程調試(圖六)


圖4 Java編譯設置

新項目被添加到Eclipse IDE中,如圖5所示。


配置Eclipse進行遠程調試(圖七)


圖5 Eclipse JBoss項目

接下來,選擇File -> Import將servlet示例源程序文件夾導入到項目中。如果src文件夾和build.xml文件不是在Eclipse IDE中創建的,這時就需要將它們導入到項目中。在Import Select屏中選擇File System并點擊Next按鈕,在Import File System屏中選中src文件夾和build.xml文件,然后點擊Finish按鈕,如圖6所示。


配置Eclipse進行遠程調試(圖八)


圖6 導入文件系統

這樣就將servlet源程序文件導入到項目中,如圖7所示。


配置Eclipse進行遠程調試(圖九)


圖7 servlet源程序文件

用build.xml文件將servlet web應用程序編譯、打包并部署到JBoss服務器上。右擊build.xml文件,選擇Run -> Ant Build,如圖8所示。


配置Eclipse進行遠程調試(圖十)


圖8 執行Ant Build

Ant對web應用程序進行編譯,生成.war格式的webapp.war文件并部署到JBoss應用服務器的部署目錄。Ant的輸出如圖9所示。


配置Eclipse進行遠程調試(圖十)


圖9 Ant的輸出

接下來執行bin/run腳本啟動JBoss服務器。在瀏覽器中通過訪問http://localhost:8080/webapp/catalog來激活servlet示例,JBossServlet在JBoss服務器上運行并在瀏覽器中輸出信息,如圖10所示:



配置Eclipse進行遠程調試(圖十二)


圖10 JBossServlet在JBoss服務器上運行

配置Eclipse進行遠程調試
  為了能在Eclipse中遠程調試JBoss應用,需要以debug模式啟動JBoss服務器,這可以通過在批命令腳本文件bin/run中設置debug選項來實現。JBoss提供的調試機制是基于Java平臺調試架構(JPDA)的。按以下方式設置JAVA_OPTS變量:
set JAVA_OPTS= -Xdebug -Xnoagent 
  -Xrunjdwp:transport=dt_socket,address=8787,
  server=y, suspend=n %JAVA_OPTS%

  
這些debug參數有:

配置Eclipse進行遠程調試(圖十三)



有關debug參數設置的詳細說明參見JPDA文檔。

為了演示Eclipse的遠程調試功能,需要在JBossServlet中拋出異常。為此我們在JBossServlet.java中引入NullPointerException(空指針異常),把原先的代碼:

out.println("Eclipse JBoss  Debugging");


改為:
String str=null;
out.println(str.toString());


接下來,為該Eclipse項目的遠程調試進行設置。在Debug選項下拉條中選擇Debug選項,如圖11所示。


配置Eclipse進行遠程調試(圖十四)


圖11 Debug選項

圖中顯示的是Debug屏。在該屏中選中Remote Java application節點,右擊節點選擇New,如圖12所示。


配置Eclipse進行遠程調試(圖十五)


圖12 新的debug設置

在Debug Configuration屏中為Debug設置指定名字。選中要調試的項目,也就是此前在Eclipse IDE中創建的EclipseJBoss項目。為Connection Type(連接類型)選擇默認值,在Connection Properties(連接屬性)中將Host指定為localhost,將Port(端口)指定為8787(JBoss服務器批命令腳本run中的端口設定值)。點擊Apply按鈕將此遠程Java應用調試設置加入,如圖13所示。


配置Eclipse進行遠程調試(圖十六)


圖13 JBoss調試設置

接下來,在JBossServlet.java文件中加入異常斷點。此前我們已在JBossServlet中引入了NullPointerException異常。選擇Run -> Add Java Exception Breakpoint在該servlet類中加入斷點,如圖14所示。


配置Eclipse進行遠程調試(圖十七)


圖14 加入Java異常斷點

在Add Java Exception Breakpoint屏中選擇NullPointerException,如圖15所示。NullPointerException斷點被加入到servlet類中。


配置Eclipse進行遠程調試(圖十八)


圖15 NullPointerException斷點

如果servlet應用在JBoss服務器上運行時產生了NullPointerException異常,該應用就會被掛起,同時Eclipse IDE的Debug視圖中會顯示出該異常。

遠程調試JBoss應用

為部署在JBoss服務器上的servlet示例應用配置好debug設置后,我們就可以在Eclipse IDE中調試servlet應用了。參照“用Eclipse開發一個JBoss應用”一節所說的方法,用build.xml文件對修改后(引入了NullPointerException異常)的JBossServlet.class重新編譯,為web應用生成新的webapp.war文件。在run批命令腳本中設定調試選項,以debug模式啟動JBoss服務器。
接下來,在Debug屏中選擇EclipseDebug作為調試設置。點擊Debug按鈕將遠程調試器與JBoss服務器連接,如圖16所示。



配置Eclipse進行遠程調試(圖十九)


圖16 將遠程調試器連接到JBoss服務器上

這樣Eclipse的遠程調試器就連接到了JBoss服務器上。選擇Debug Perspective按鈕切換到Eclipse的Debug視圖,在該視圖中顯示出遠程調試器已連接到本機的JBoss服務器上,端口號為8787,如圖17所示。


配置Eclipse進行遠程調試(圖二十)


圖17 遠程調試器已連接到JBoss服務器上

在瀏覽器中輸入URL地址http://localhost:8080/webapp/catalog來訪問JBoss服務器上的JBossServlet,就像我們在Debug視圖中看到的那樣,servlet因拋出NullPointerException異常而被掛起。產生了異常的那一行代碼被顯示出來,如圖18所示。


配置Eclipse進行遠程調試(圖二十)

  
圖18 JBoss服務器在產生NullPointerException處被掛起

拋出異常的那一行是out.println(str.toString());。我們可以在Eclipse IDE的Run菜單中選擇不同的調試選項對該servlet應用進行調試。

小結
  我們在Eclipse IDE中以遠程的方式調試了部署在JBoss服務器上的一個應用。只要將服務器設置成以debug模式啟動,我們就可以用這個方法調試部署在其它類型應用服務器(如Weblogic)上的應用。

資源
Eclipse IDE
JBoss服務器
Java平臺調試架構

Deepak Vohra是NuBean公司的咨詢顧問和Web開發人員。

(出處:http://m.survivalescaperooms.com)



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 肥城市| 兴隆县| 沙坪坝区| 揭西县| 措美县| 大石桥市| 苍溪县| 北碚区| 正镶白旗| 大关县| 阿巴嘎旗| 广南县| 清丰县| 叶城县| 舟曲县| 阳谷县| 巫山县| 铜鼓县| 灵石县| 长武县| 迭部县| 凤凰县| 鄢陵县| 新和县| 衡南县| 额敏县| 杭锦后旗| 河池市| 福海县| 台湾省| 郴州市| 南召县| 隆德县| 阿克苏市| 富蕴县| 巨野县| 达日县| 治县。| 错那县| 隆昌县| 田阳县|