การใช้ public IP ทำให้คุณสามารถ remote debugging ได้ คุณสามารถ debug แอปพลิเคชันของคุณภายใน Ruk-Com Cloud platform โดยเชื่อมต่อกับโค้ดใน IDE ของคุณ ในขั้นตอนแรกพิจารณาลักษณะพื้นฐานของการ remote debugging
Remote Debugging ทำงานอย่างไร
Java จัดเตรียมฟีเจอร์นี้โดยใช้กลไกการโยงตัวฟัง แนวคิดพื้นฐานค่อนข้างง่ายและเป็นพื้นฐาน:
- แอปพลิเคชันที่จะทำ debug จะแนบ socket เข้ากับตัวมันเองจากนั้นจะฟังคำแนะนำการดีบักบน socket นั้น
- Debugger จะผูกตัวเองกับ socket นั้นและส่งส่งคำแนะนำบน socket นั้น
การสร้าง Environment
1. เข้าสู่ระบบ Ruk-Com Cloud Dashboard
2. คลิก New Environment เพื่อตั้งค่า environment ใหม่

3. เลือกอินสแตนซ์ที่คุณต้องการใช้ (ยกตัวอย่างเช่น, Tomcat application sever) ดูขีดจำกัด cloudlets และเปิด IP ภายนอกจากนั้นใส่ชื่อ environment แล้วคลิกปุ่ม Create

ภายในไม่กี่นาที environment จะถูกสร้างขึ้น
4. ขยายรายการ Application Servers เพื่อดูหมายเลข Public IP ของคุณ

Deploy Application
คลิกปุ่ม Deployment ที่ environment ของคุณจากนั้นอัปโหลดแพ็คเกจ Java แล้วกด Deploy

ยกตัวอย่าง เราใช้แอปพลิเคชันอย่างง่ายที่เริ่มต้นด้วยตัวแปร 3 ตัว (a, b, c)
package com;
public class RemoteDebugger {
public void start () {
int a,b,c;
a = 1;
System.out.println("a = "+ a);
b = 2;
System.out.println("b = "+ b);
c = 3;
System.out.println("c = "+ c);
}
}
Configure Debugging
1 เปิดแอปพลิเคชันใน IDE ของคุณ (ยกตัวอย่างเช่น NetBeans) และสร้าง Debugger ใหม่ (Debug main project > Attach Debugger)

2. เลือกประเภทของ Connector ใส่ Public IP address (host) หมายเลขพอร์ตของคุณและระบุการตั้งค่า Timeout (ไม่บังคับ)

3. กลับไปที่หน้าแดชบอร์ด คลิกปุ่ม Config สำหรับ Tomcat

4. ไปที่ไฟล์ variables.conf และเพิ่ม 2 arguments: -Xdebug และ -Xrunjdwp
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5000

หมายเหตุ: หมายเลขพอร์ตใน variables.conf และ debugger ควรเหมือนกัน
5. บันทึกการเปลี่ยนแปลงและรีสตาร์ท Tomcat
6. ใส่ break point ที่โค้ดของคุณเพื่อทดสอบ Remote Debugging และเริ่มต้น debugger ที่สร้างขึ้นใหม่ในกรณีของเรา แอปพลิเคชันควรเริ่มต้นเพียงสองตัวแปรแทนที่จะเป็นสามตัว

ตรวจสอบ Tomcat logs เพื่อดูให้แน่ใจว่าการ debug ทำงานอย่างถูกต้อง

คุณจะเห็นว่าตัวแปรสองตัวได้รับการเตรียมใช้งานแล้ว
7. หากวาง break point หนึ่งแถวลง ตัวแปรสามตัวจะถูกเริ่มต้นใช้งานในแอปของคุณ


เคล็ดลับ: คำแนะนำข้างต้นเหมาะสำหรับ Jetty application server
ในกรณีที่คุณใช้ GlassFish เป็นแอปพลิเคชันเซิร์ฟคุณต้องระบุ arguments: -Xdebug และ -Xrunjdwp ผ่านหน้า admin pannel
- เมื่อคุณสร้าง environment ระบบจะส่งอีเมลพร้อมข้อมูลรับรองไปยัง GlassFish Admin Console คุณสามารถเข้าสู่ระบบด้วยข้อมูลประจำตัวเหล่านี้

- ไปที่ gfcluster-config > JVM Settings และเลือก General tab > Debug options จากนั้นระบุ debug mode และ debug parameters ของคุณ

- ไปที่ JVM options และเพิ่ม 2 arguments: -Xdebug และ -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5000

- บันทึกการเปลี่ยนแปลงทั้งหมดและรีสตาร์ท Glassfish
หวังว่าคำแนะนำนี้จะเป็นประโยชน์สำหรับคุณ