คำนำ
ใครก็ตามที่มีประสบการณ์ในการเขียน JSP จะมีประสบการณ์ในการดีบักปัญหา JSP เนื่องจากขาดเครื่องมือแก้ไขจุดบกพร่องอัตโนมัติ จึงต้องใช้คำสั่งการพิมพ์จำนวนมากในไฟล์เมื่อทำการดีบัก JSP แนวทางนี้เป็นวิธีการที่ง่ายและมีประสิทธิภาพในการค้นหาข้อผิดพลาดภายในขอบเขตของ JSP แต่ยังไม่เพียงพอเล็กน้อยในการค้นหาข้อผิดพลาดภายในของอ็อบเจ็กต์ที่เรียกว่าใน JSP อย่างรวดเร็วและมีประสิทธิภาพ เนื่องจากจะต้องคอมไพล์ เผยแพร่ เริ่มต้นและหยุดเซิร์ฟเวอร์บ่อยครั้ง ซึ่งนำมาซึ่งความไม่สะดวกอย่างมากในการดีบัก
เครื่องมือดีบัก WYSIWYG JSP ในตำนานไม่มีอยู่เท่าที่ผู้เขียนทราบในปัจจุบัน หากผู้อ่านมีข้อมูลเกี่ยวกับเรื่องนี้ โปรดแจ้งให้เราทราบ แต่มีเครื่องมือดีบัก JSP อยู่และฟรี! มันคือลอมบอซ ที่อยู่การดาวน์โหลด: http://www.objectlearn.com/products/download.jsp
บทความนี้เริ่มต้นจากตัวอย่างง่ายๆ เพื่ออธิบายวิธีใช้ lomboz เพื่อดีบัก JSP สภาพแวดล้อมการพัฒนาของตัวอย่างนี้เป็นดังนี้:
-JDK เวอร์ชัน: 1.4.1;
-JAVA IDE:Eclipse
2.1
;
ความรู้เบื้องต้นเกี่ยวกับลอมบอซ
พูดจริงๆ แล้ว lomboz คือปลั๊กอิน J2EE สำหรับ Eclipse โดยจะรวมแอปพลิเคชันเซิร์ฟเวอร์ Java, ส่วนประกอบ J2EE และการพัฒนาแอปพลิเคชันเว็บจำนวนมากไว้ใน Eclipse ซึ่งสามารถช่วยนักพัฒนา Java ใช้ Eclipse เพื่อสร้าง ทดสอบ และปรับใช้แอปพลิเคชัน J2EE สำหรับจุดเน้นของบทความนี้ การดีบัก JSP ยังมีการสนับสนุนที่เกี่ยวข้อง:
- รองรับการเขียน JSP รวมถึง: การระบายสีไวยากรณ์และการตรวจสอบไวยากรณ์ -
รองรับการดีบัก JSP
สำหรับการดีบัก JSP หลักการของ lomboz คือการดีบักโค้ด java ที่สร้างโดยเพจ JSP ที่จะดีบั๊ก กระบวนการดีบักทั้งหมดจะเหมือนกับกระบวนการของแอปพลิเคชัน Java ดังนั้นทั้งการดีบักของ JSP เองและการดีบักของอ็อบเจ็กต์ที่ JSP เรียกจึงเชื่อมโยงเข้าด้วยกันได้อย่างราบรื่น
ก่อนที่จะเริ่มตัวอย่างในบทความนี้ เรามาดูการติดตั้ง lomboz และการกำหนดค่าสำหรับการใช้งานปกติของฟังก์ชันการดีบัก JSP
การติดตั้งและการกำหนดค่า
กระบวนการติดตั้ง lomboz นั้นง่ายมาก กระบวนการติดตั้งปลั๊กอิน Eclipse ส่วนใหญ่นั้นง่ายมาก ขั้นตอนหลักๆ มีดังนี้:
1. ดาวน์โหลดจากที่อยู่ดาวน์โหลดของ lomboz ( http://www.objectlearn.com/products/download jsp ) เพื่อรองรับ Eclipse2.1 (หรือ Eclipse เวอร์ชันอื่น)
2. หาก Eclipse ทำงานอยู่แล้ว กรุณาปิดก่อน
3. แยกไฟล์ที่ดาวน์โหลดไปยังไดเร็กทอรีปลั๊กอินในไดเร็กทอรีการติดตั้ง Eclipse
4. รีสตาร์ท Eclipse และเปิด "เกี่ยวกับปลั๊กอิน Eclipse Platform" (วิธีใช้ -> เกี่ยวกับแพลตฟอร์ม Eclipse -> รายละเอียดปลั๊กอิน) หากติดตั้ง lomboz สำเร็จ ข้อมูลเกี่ยวกับปลั๊กอินจะปรากฏขึ้น ดังที่แสดงด้านล่าง:
หมายเหตุ: หากคุณต้องการถอนการติดตั้ง lomboz คุณจะต้องลบไดเร็กทอรีที่ตรงกับ lomboz ในไดเร็กทอรีปลั๊กอินเท่านั้น
5. ตั้งค่า Lomboz J2EE View โดยเปิด Window -> Customise Perspective ดังแสดงในรูป:
1. กำหนดค่า JDK เลือก "Windows -> การตั้งค่า" เลือก Lomboz และกำหนดค่า JDK ดังที่ปรากฏในตำนาน:
2. กำหนดเซิร์ฟเวอร์ หากเซิร์ฟเวอร์ของคุณรวมอยู่ในรายการเซิร์ฟเวอร์เริ่มต้นของ Lomboz แล้ว คุณสามารถข้ามขั้นตอนนี้ได้ สามารถรับรายชื่อเซิร์ฟเวอร์เริ่มต้นของ Lomboz ได้โดยการขยาย Lomboz ในอินเทอร์เฟซของขั้นตอนก่อนหน้า จากนั้นเลือก "คำจำกัดความของเซิร์ฟเวอร์" ข้อมูลต่อไปนี้ใช้การเพิ่ม Tomcat4.1.18 เป็นตัวอย่างเพื่ออธิบายวิธีเพิ่มเซิร์ฟเวอร์ ขั้นตอนที่เกี่ยวข้องมีดังนี้:
a) ป้อนไดเร็กทอรีย่อยเซิร์ฟเวอร์ของไดเร็กทอรีการติดตั้ง Lomboz คัดลอกไฟล์ .server (เช่น tomcat410.server) และเปลี่ยนชื่อเป็น tomcat418.server
b) เปิดไฟล์นี้และเปลี่ยนตำแหน่งต่อไปนี้ของไฟล์นี้:
- <serverDefinition....../> เปลี่ยนชื่อเป็นชื่อที่คุณต้องการ (เช่น Apache Tomcat v4.1.8) ชื่อนี้จะถูกใช้ เพื่อแสดงในส่วนรายการเซิร์ฟเวอร์ของอินเทอร์เฟซ "Server Definitions"
- <property id="serverRootDirectory" ........./> โดยที่ค่าเริ่มต้นจะเปลี่ยนเป็นไดเร็กทอรีที่ Tomcat อยู่บนของคุณ เครื่อง เช่น D:/Program Files/Java/tomcat- 4.1.18;
- <property id="classPathVariableName" .../> โดยที่ค่าเริ่มต้นจะเปลี่ยนเป็นชื่อใดๆ (เช่น TOMCAT418) ใช้เพื่อแสดงชื่อตัวแปร ClassPath เริ่มต้นของโปรเจ็กต์ Lomboz
- <property id ="classPath" .../> โดยที่ค่าเริ่มต้นจะเปลี่ยนเป็นไดเร็กทอรีที่ Tomcat อยู่บนเครื่องของคุณ เช่น D:/Program ไฟล์/Java/tomcat-4.1.18;
c) เพิ่ม jasper-runtime.jar ตามค่าเริ่มต้น ไฟล์ TomcatX.server จะมีไฟล์ jar เพียง 2 ไฟล์เท่านั้น: servlet.jar และ bootstrap.jar แต่ jasper-runtime.jar หายไป ไฟล์ jar นี้มีบทบาทสำคัญในกระบวนการดีบัก JSP ดังนั้นโปรดเพิ่มเข้าไป มีสองวิธีในการเพิ่ม jar ให้กับเซิร์ฟเวอร์:
วิธีที่ 1:
เพิ่มบรรทัดในส่วน <serverClassPath> ของไฟล์ .server ที่คุณเพิ่งแก้ไข: <jar type="variable">${classPathVariableName}/common/lib/ jasper-runtime.jar</jar>;
วิธีที่ 2: ใช้อินเทอร์เฟซ "Server Definitions" ซึ่งจะไม่อธิบายอีกที่นี่
เซิร์ฟเวอร์ที่กำหนดค่าจะแสดงในรูปแบบ "คำจำกัดความของเซิร์ฟเวอร์" ดังที่แสดงด้านล่าง:
หมายเหตุ: เซิร์ฟเวอร์ Tomcat4.x จำเป็นต้องได้รับการแพตช์เพื่อให้ Lomboz ทำงานได้อย่างถูกต้อง ที่อยู่การดาวน์โหลดแพตช์คือ:
ณ จุดนี้ การติดตั้งและการกำหนดค่าของ Lomboz เสร็จสมบูรณ์แล้ว ดังนั้นให้ เราสร้างตัวอย่าง "Hello World!" เพื่อสัมผัสประสบการณ์กระบวนการดีบัก JSP ของ Lomboz
การดีบัก JSP
สร้างโปรเจ็กต์ เมื่อต้องการใช้ Lomboz เพื่อดีบัก JSP คุณต้องสร้างโปรเจ็กต์ Lomboz ก่อน ขั้นตอนมีดังนี้:
1. เปิดไฟล์->ใหม่->โปรเจ็กต์ Lomboz J2EE และสร้างโปรเจ็กต์ชื่อ debugJsp
2. เลือก "ถัดไป" เพื่อเข้าสู่หน้าการเลือกคุณสมบัติของโปรเจ็กต์ Lomboz และเพิ่มเว็บโมดูลและเซิร์ฟเวอร์ที่ใช้ เนื่องจากงานหลักของเราคือการดีบัก JSP โมดูล EJB จึงสามารถว่างเปล่าได้ ดังที่แสดงด้านล่าง:
3. เลือก เสร็จสิ้น และโครงการ Lomboz จะถูกสร้างขึ้น ในขณะนี้ โครงสร้างไฟล์ที่สร้างโดย Lomboz เป็นดังนี้:
ต่อไปเราสามารถสร้างไฟล์ JSP ที่เราต้องการได้ ในตัวอย่างนี้ ฉันใช้ดัชนี jsp เริ่มต้นโดยตรงและเปลี่ยนเนื้อหาเป็น:
<
!-- Copyright (c) 2002 by ObjectLearn All Rights Reserved
<หัว>
<title>ยินดีต้อนรับ</title>
</หัว>
<ร่างกาย>
<center><%= "สวัสดีชาวโลก!"%></center>
</ร่างกาย>
</html>
จนถึงขณะนี้ การเตรียมการสำหรับการดีบัก JSP ของเราได้เสร็จสิ้นไปแล้วโดยประมาณ แต่ผู้ที่ใช้ Tomcat4.x ยังคงต้องการขั้นตอนเพิ่มเติม (ขั้นตอนเหล่านี้ส่วนใหญ่เกิดจาก tomcat4.x เอง):
1. ใน Tomcat เพิ่มบรรทัดต่อไปนี้ไปที่ ไฟล์ server.xml ในไดเร็กทอรี config (สำหรับตำแหน่งเฉพาะ โปรดดูเอกสารที่เกี่ยวข้องกับ server.xml):
<Context path="/TestJsp" docBase="D:DebugJspdebugJsp" workDir="D: DebugJspj2srcorgapachejsp">
หนึ่งในนั้นคือ path แสดงถึงชื่อ URL ของเว็บแอปพลิเคชัน docBase แสดงถึงตำแหน่งทางกายภาพของเว็บแอปพลิเคชัน workDir แสดงถึงตำแหน่งที่สร้างไฟล์ java ที่สอดคล้องกับ jsp คุณต้อง สร้าง orgapachejsp เช่น โครงสร้างและชื่อ Directory นี้
2. สร้างโครงสร้างไดเร็กทอรีย่อยที่สอดคล้องกันในไดเร็กทอรี j2src ที่สอดคล้องกันตาม orgapachejsp และตั้งค่า j2src เป็นไดเร็กทอรีต้นทางของโปรเจ็กต์
ตรวจสอบไวยากรณ์ตอนนี้ มาสนุกกับกระบวนการดีบัก JSP กันดีกว่า ก่อนการดีบัก JSP ไม่ควรมีข้อผิดพลาดทางไวยากรณ์ Lomboz จัดให้มีฟังก์ชันการตรวจสอบไวยากรณ์ JSP การดำเนินการเฉพาะคือ:
1. เลือกไฟล์ JSP ที่จะตรวจสอบและคลิกขวา
2. เลือก Lomboz j2ee... -> ตรวจสอบไวยากรณ์ Jsp
หลังจากการดีบักและแก้ไขข้อผิดพลาดทางไวยากรณ์ ขั้นตอนต่อไปคือเวลาที่จะแก้ไขข้อผิดพลาดทางตรรกะ ข้อผิดพลาดประเภทนี้สามารถแก้ไขได้ด้วยการดีบักเท่านั้น กระบวนการใช้ Lomboz เพื่อดีบัก JSP นั้นคล้ายกับการดีบักแอปพลิเคชัน JAVA ทั่วไปมาก เนื่องจากหลักการคือใช้เซิร์ฟเวอร์ก่อนเพื่อสร้างไฟล์ JAVA ที่สอดคล้องกับ JSP แล้วจึงดีบัก
ขั้นตอนในการดีบัก JSP มีดังนี้:
1. เปิด Lomboz J2EE View เลือกเซิร์ฟเวอร์ คลิกขวาที่เมาส์แล้วเลือก "debug server" ดังแสดงในภาพ:
หากไฟล์ .server ถูกกำหนดอย่างถูกต้อง Tomcat จะเริ่มทำงาน หาก Tomcat ไม่เริ่มทำงานตามที่คาดไว้ โปรดแก้ไขปัญหาจากสองประเด็นนี้: ตัวแปรสภาพแวดล้อม Tomcat และไฟล์เซิร์ฟเวอร์ของ Lomboz
2. เปิดเบราว์เซอร์ เช่น IE และป้อน: http://127.0.0.1:8080/debugJsp/index.jsp ในแถบที่อยู่ หากไม่มีข้อผิดพลาดทางไวยากรณ์ในไฟล์ JSP ไฟล์ JAVA ที่สอดคล้องกับไฟล์ JSP จะถูกสร้างขึ้นในไดเร็กทอรี j2srcorgapachejsp ของโปรเจ็กต์ รีเฟรชโปรเจ็กต์เพื่อดูไฟล์เหล่านี้ ดังแสดงในภาพ:
ขั้นตอนนี้มีไว้เพื่อทริกเกอร์เซิร์ฟเวอร์เพื่อสร้างไฟล์ java สำหรับการดีบักโดยใช้ jsp เป็นหลัก คุณไม่ต้องกังวลมากเกินไปว่าผลลัพธ์จะถูกต้องหรือไม่ เนื่องจากเมื่อไฟล์ Java ถูกสร้างขึ้นแล้ว ข้อผิดพลาดเหล่านี้จึงสามารถกำจัดได้ด้วยการดีบัก
3. เปิดไฟล์ java ตั้งค่าเบรกพอยต์ในนั้น จากนั้นป้อน URL อีกครั้งในแถบที่อยู่ของ IE ในเวลานี้ ฟังก์ชันการดีบักของ Eclipse จะถูกเปิดใช้งาน ณ จุดนี้ JSP สามารถดีบั๊กในลักษณะที่เป็นเป้าหมายได้ สถานการณ์ในขณะนี้ ดังแสดงในรูป:
สำหรับการดีบักอ็อบเจ็กต์ที่เรียกโดย JSP หลังจากทำตามขั้นตอนข้างต้นแล้วใน java ที่สอดคล้องกับอ็อบเจ็กต์
เพียงตั้งค่าเบรกพอยต์ในไฟล์
แม้ว่าการดีบักปัจจุบันของ JSP จะไม่สะดวกเท่ากับการดีบักไฟล์ java ธรรมดา แต่การเกิดขึ้นของเครื่องมือเช่น Lomboz ได้ยุติขั้นตอนการดีบักแบบแมนนวลของ JSP อย่างน้อยที่สุด จากนี้ไปนักพัฒนาแอปพลิเคชันเว็บ Java ไม่จำเป็นต้องหยุดโปรแกรมเป็นครั้งคราวเพื่อเพิ่มคำสั่งการพิมพ์ด้วยตนเองเพื่อสังเกตค่าของตัวแปรเนื่องจากข้อผิดพลาดบางประการ ในทางกลับกัน พวกเขาสามารถสังเกตการเปลี่ยนแปลงของค่าเหล่านี้ได้ ในขณะที่โปรแกรมกำลังทำงานเหมือนกับการดีบักแอปพลิเคชัน JAVA ทั่วไป สิ่งนี้อำนวยความสะดวกอย่างมากในการพัฒนาแอปพลิเคชันบนเว็บและลดเวลาที่เสียไปในการดีบักก่อนหน้านี้