Spring Boot
Aplikasi web saya berjalan dengan baik, dan saya ingin men-debugnya melalui Eclipse.
Jadi saat meluncurkan debugger Aplikasi Java Jarak Jauh saya, port mana yang harus saya dengarkan? Dan apakah ada pengaturan di aplikasi web saya yang harus saya atur untuk mengaktifkan debugging?
Jawaban:
Mengapa Anda tidak mengklik kanan pada
main()
metode dan memilih"Debug As... Java Application"
?sumber
Ada bagian 19.2 di Referensi Spring Boot yang memberi tahu Anda tentang memulai aplikasi Anda dengan dukungan debugging jarak jauh diaktifkan.
Setelah Anda memulai aplikasi, cukup tambahkan konfigurasi Aplikasi Java Jarak Jauh itu dalam konfigurasi Run / Debug, pilih port / alamat yang Anda tentukan saat memulai aplikasi, lalu Anda bebas untuk men-debug.
sumber
java -agentlib:jdwp=help
status "Antarmuka -Xrunjdwp yang lebih lama masih dapat digunakan, tetapi akan dihapus di rilis mendatang". Sebaliknya gunakan-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n
Solusi yang lebih mudah:
Daripada mengetik
mvn spring-boot:run
, cukup ketikmvnDebug spring-boot:run
Anda masih perlu memasang debugger di Eclipse dengan membuat Konfigurasi Debug baru untuk "Aplikasi Java Jarak Jauh" di porta yang relevan.
sumber
Saya tidak perlu menyiapkan debugging jarak jauh agar ini berfungsi, saya menggunakan Maven.
spring-boot::run
.NB. Jika IDE Anda mengalami masalah dalam menemukan kode sumber proyek Anda saat melakukan debug baris demi baris, lihat jawaban SO ini untuk mengetahui cara melampirkan kode sumber Anda ke aplikasi debug secara manual.
Semoga ini bisa membantu seseorang!
sumber
Cara men-debug aplikasi pementasan jarak jauh atau produksi Spring Boot
Sisi server
Anggaplah Anda telah berhasil mengikuti panduan Spring Boot tentang menyiapkan aplikasi Spring Boot Anda sebagai layanan . Artefak aplikasi Anda berada
/srv/my-app/my-app.war
, disertai dengan file konfigurasi/srv/my-app/my-app.conf
:Ketika Anda me-restart aplikasi Spring Boot Anda dengan
sudo service my-app restart
, maka di file log-nya yang terletak di/var/log/my-app.log
seharusnya ada baris yang mengatakanListening for transport dt_socket at address: 8002
.Sisi klien (mesin pengembang)
Buka SSH port-forwarding tunnel ke server:
ssh -L 8002:localhost:8002 [email protected]
. Biarkan sesi SSH ini tetap berjalan.Di Eclipse, dari toolbar, pilih Run -> Debug Configurations -> pilih Remote Java Application -> klik tombol New -> pilih sebagai Connection Type Standard (Socket Attach) , sebagai Host localhost , dan sebagai Port 8002 (atau apa pun yang Anda miliki dikonfigurasi di langkah sebelumnya). Klik Apply dan kemudian Debug .
Debugger Eclipse sekarang harus terhubung ke server jarak jauh. Beralih ke perspektif Debug harus menunjukkan JVM yang terhubung dan utasnya. Breakpoint harus diaktifkan segera setelah dipicu dari jarak jauh.
sumber
Jalankan di bawah perintah di mana
pom.xml
ditempatkan:Dan mulai aplikasi java jarak jauh Anda dengan opsi debugging di port
5005
sumber
Spring Boot 2.0.3.RELEASE
.Solusi terbaik menurut saya adalah menambahkan plugin di pom.xml, dan Anda tidak perlu melakukan hal lain sepanjang waktu:
sumber
mvn clean install
memicu debugger dan build macet. Akan keren jika hanyamvnDebug clean install
perintah yang melakukannya.sumber
Right click on the spring boot project -> debug as -> spring boot App
. Letakkan titik debugger dan aktifkan aplikasi dari klien seperti tukang possumber
Silakan lihat http://java.dzone.com/articles/how-debug-remote-java-applicat untuk mengaktifkan debugging jarak jauh. Jika Anda menggunakan tomcat untuk menjalankan aplikasi Anda, mulai tomcat dengan parameter debug jarak jauh atau Anda dapat memulai tomcat dengan dukungan JPDA dengan menggunakan perintah berikut.
Windows
* nix
ini akan mengaktifkan debugging jarak jauh pada port 8000
sumber
Dengan eclipse atau IDE lainnya, cukup klik kanan pada aplikasi spring boot utama Anda dan klik "debug as java application"
sumber
Pertanyaan ini sudah terjawab, tetapi saya juga mendapat masalah yang sama untuk men-debug Springboot + gradle + jHipster,
Sebagian besar aplikasi boot Spring dapat men-debug dengan klik kanan dan debug, tetapi ketika Anda menggunakan gradle, memiliki beberapa pengaturan parameter lingkungan tambahan maka tidak mungkin untuk men-debug secara langsung.
Untuk mengatasinya, Eclipse menyediakan satu fitur tambahan sebagai Aplikasi Java Jarak Jauh
dengan menggunakan fitur ini, Anda dapat men-debug aplikasi Anda.
Ikuti langkah di bawah ini:
jalankan aplikasi gradle Anda dengan
./gradlew bootRun --debug-jvm
perintahSekarang pergi ke eclipse -> proyek klik kanan dan konfigurasi Debug -> Aplikasi Java Jarak Jauh.
tambahkan host dan port Anda sebagai localhost dan porta sebagai 5005 (default untuk debug gradle, Anda dapat mengubahnya)
Lihat untuk detail dan langkah lebih lanjut.
sumber
Klik kanan pada file kelas utama Aplikasi Spring Boot -> pilih opsi Debug As -> Pilih Aplikasi Java
Sekarang Anda dapat menggunakan breakpoint untuk men-debug aplikasi.
sumber