การใช้ 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 ใหม่
![](https://docs.ruk-com.cloud/wp-content/uploads/2021/10/environment.jpg)
3. เลือกอินสแตนซ์ที่คุณต้องการใช้ (ยกตัวอย่างเช่น, Tomcat application sever) ดูขีดจำกัด cloudlets และเปิด IP ภายนอกจากนั้นใส่ชื่อ environment แล้วคลิกปุ่ม Create
![](https://docs.ruk-com.cloud/wp-content/uploads/2021/11/Screen-Shot-2564-11-25-at-14.21.44-1024x632.png)
ภายในไม่กี่นาที environment จะถูกสร้างขึ้น
4. ขยายรายการ Application Servers เพื่อดูหมายเลข Public IP ของคุณ
![](https://docs.ruk-com.cloud/wp-content/uploads/2021/11/image-1-1024x300.png)
Deploy Application
คลิกปุ่ม Deployment ที่ environment ของคุณจากนั้นอัปโหลดแพ็คเกจ Java แล้วกด Deploy
![](https://docs.ruk-com.cloud/wp-content/uploads/2021/11/Screen-Shot-2564-11-25-at-16.07.58.png)
ยกตัวอย่าง เราใช้แอปพลิเคชันอย่างง่ายที่เริ่มต้นด้วยตัวแปร 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)
![](https://docs.ruk-com.cloud/wp-content/uploads/2021/11/image-5-1024x117.png)
2. เลือกประเภทของ Connector ใส่ Public IP address (host) หมายเลขพอร์ตของคุณและระบุการตั้งค่า Timeout (ไม่บังคับ)
![](https://docs.ruk-com.cloud/wp-content/uploads/2021/11/image-3-1024x581.png)
3. กลับไปที่หน้าแดชบอร์ด คลิกปุ่ม Config สำหรับ Tomcat
![](https://docs.ruk-com.cloud/wp-content/uploads/2021/11/Screen-Shot-2564-11-25-at-15.49.06-1024x304.png)
4. ไปที่ไฟล์ variables.conf และเพิ่ม 2 arguments: -Xdebug และ -Xrunjdwp
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5000
![](https://docs.ruk-com.cloud/wp-content/uploads/2021/11/image-4-1024x293.png)
หมายเหตุ: หมายเลขพอร์ตใน variables.conf และ debugger ควรเหมือนกัน
5. บันทึกการเปลี่ยนแปลงและรีสตาร์ท Tomcat
6. ใส่ break point ที่โค้ดของคุณเพื่อทดสอบ Remote Debugging และเริ่มต้น debugger ที่สร้างขึ้นใหม่ในกรณีของเรา แอปพลิเคชันควรเริ่มต้นเพียงสองตัวแปรแทนที่จะเป็นสามตัว
![NetBeans code break point](https://docs.jelastic.com/remote-debugging/10-netbeans-code-break-point.png)
ตรวจสอบ Tomcat logs เพื่อดูให้แน่ใจว่าการ debug ทำงานอย่างถูกต้อง
![Tomcat logs before break point](https://docs.jelastic.com/remote-debugging/11-tomcat-logs-before-break-point.png)
คุณจะเห็นว่าตัวแปรสองตัวได้รับการเตรียมใช้งานแล้ว
7. หากวาง break point หนึ่งแถวลง ตัวแปรสามตัวจะถูกเริ่มต้นใช้งานในแอปของคุณ
![NetBeans break point next line](https://docs.jelastic.com/remote-debugging/12-netbeans-break-point-next-line.png)
![Tomcat logs after break point](https://docs.jelastic.com/remote-debugging/13-tomcat-logs-after-break-point.png)
เคล็ดลับ: คำแนะนำข้างต้นเหมาะสำหรับ Jetty application server
ในกรณีที่คุณใช้ GlassFish เป็นแอปพลิเคชันเซิร์ฟคุณต้องระบุ arguments: -Xdebug และ -Xrunjdwp ผ่านหน้า admin pannel
- เมื่อคุณสร้าง environment ระบบจะส่งอีเมลพร้อมข้อมูลรับรองไปยัง GlassFish Admin Console คุณสามารถเข้าสู่ระบบด้วยข้อมูลประจำตัวเหล่านี้
![GlassFish admin console](https://docs.jelastic.com/remote-debugging/14-glassfish-admin-console.png)
- ไปที่ gfcluster-config > JVM Settings และเลือก General tab > Debug options จากนั้นระบุ debug mode และ debug parameters ของคุณ
![GlassFish debug options](https://docs.jelastic.com/remote-debugging/15-glassfish-debug-options.png)
- ไปที่ JVM options และเพิ่ม 2 arguments: -Xdebug และ -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5000
![GlassFish JVM settings](https://docs.jelastic.com/remote-debugging/16-glassfish-jvm-settings.png)
- บันทึกการเปลี่ยนแปลงทั้งหมดและรีสตาร์ท Glassfish
หวังว่าคำแนะนำนี้จะเป็นประโยชน์สำหรับคุณ