Menulis kode adalah setengah dari perjuangan. Itu masih perlu dibuat agar berfungsi dengan benar. IDE dan alat debugging banyak membantu kami dalam hal ini.
Dengan menggunakan IntelliJ IDEA sebagai contoh, saya mengusulkan untuk mengetahui bagaimana kita dapat mengetahui apa yang terjadi pada kode kita saat dijalankan. Debug adalah topik yang luas, jadi ulasan ini tidak menawarkan penyelaman yang dalam, seperti penyelam. Tapi saya harap snorkeling pasti)
Selanjutnya, kita perlu menjalankan proyek yang kita pilih di server. Proses ini dijelaskan dalam dokumentasi kecil yang dapat ditemukan dalam proyek itu sendiri:
Setelah ini, di log server kita dapat melihat bagaimana proyek baru “diterapkan”:
Setelah itu kita masuk ke halaman tersebut
Jika semuanya baik-baik saja, kita akan melihat pesan tentang ini di bawah:
Tekan Enter untuk membuka sumber yang ditemukan:
Jadi, kita melihat bahwa ketika mendaftar, memberController.register dipanggil Rupanya, ini pasti semacam kelas Java. Klik
Memang benar ada kelas seperti itu. Mari kita bahas lebih dalam. Rupanya, harus ada metode mendaftar. Klik
Memang benar, kami menemukannya. Rupanya, pendaftaran terjadi di sini, di memberRegistration.register . Tekan Ctrl dan klik pada metode untuk “gagal” ke dalamnya:
Sekarang mari kita tentukan “break point” atau Break Point. Ini adalah penanda yang memberitahukan di mana eksekusi kode harus dijeda. Saat ini kita akan mendapat kesempatan untuk mempelajari banyak hal menarik. Untuk memasangnya Anda perlu mengklik di tempat di sebelah kanan nomor baris.
Pada halaman http://localhost:8080/wildfly-hibernate4 isi kolom dan klik tombol Daftar. Ikon ide di panel akan berkedip:
Masuk ke Idea, Anda dapat melihat ada banyak informasi menarik di panel debug:
Di sini Anda dapat melihat nilai bidang objek. Misalnya, Anggota terdaftar terdiri dari:
Besar. Mau bagaimana lagi? Kita bisa membuka menu konteks dan memilih Evaluate Expression disana (atau melalui menu Run -> Evaluate Expression). Lebih baik lagi, di panel kontrol debugger:
Ini adalah kemampuan yang sangat keren di breakpoint, memiliki akses ke segala sesuatu yang dapat diakses oleh titik kode tersebut, untuk mengeksekusi kode apa pun yang dapat dieksekusi pada saat itu. Misalnya:
Ada juga tombol kontrol pada panel kontrol debugger yang bertanggung jawab ke mana Anda ingin memindahkan kontrol aliran program. Ajaib bukan?) Dengan menekan tombol F8 (Step Out), kita menelusuri kode tanpa memasukkan metode. Dengan menekan F9, kita berhenti menelusuri baris kode dengan debugger, dan memberikan kontrol debugger atas eksekusi program. Jika kita menekan F7 (Step Into), maka kita akan menelusuri kodenya, memasukkan setiap metode yang kita temui di sepanjang jalan. Omong-omong, berikan perhatian khusus pada blok informasi ini:
Ini menunjukkan thread tempat kita berada dan metode pada tumpukan thread saat ini. Tapi bukan itu saja. Untuk kenyamanan, Anda dapat membuka tab bingkai. Untuk melakukan ini, ini harus diaktifkan:
Sekarang pada tab frame kita melihat informasi tentang transisi dari metode ke metode, karena mulai menelusuri kode menggunakan Step Into.
Seperti yang bisa kita lihat, kita tidak selalu bisa dipindahkan ke tempat program sedang dijalankan. Kami sekarang berada di "getDelegate:469, abstractEntityManager(org.jboss.as.jpa.container)". Tapi faktanya, kami sedang dalam implementasi. Hal ini dibuktikan dengan kelas yang ditentukan oleh ini:
Mari kita lihat ini. Seperti yang kita ketahui, ini menunjuk ke objek saat ini. Kami berada di TransactionScopedEntityManager. Mengapa Idea tidak dapat menunjukkan kodenya kepada kami? Faktanya adalah IntelliJ Idea saat ini tidak mengetahui tentang TransactionScopedEntityManager, karena itu tidak terhubung ke proyek kami (tidak ada dalam ketergantungan proyek). Saat server aplikasi berjalan, ada banyak sekali perpustakaan berbeda yang berjalan di dalamnya. Tapi kita hanya tahu sedikit tentang mereka, karena... secara umum, kita tidak perlu mendalami hal-hal internal, kita hanya memerlukannya agar berfungsi. Namun terkadang minat bekerja atau berolahraga memerlukannya. Kemudian, Anda perlu memberi tahu Idea tentang perpustakaan ini sehingga Idea mengetahui di mana mendapatkan kode kelas.
Sekarang kita tunggu saja hasilnya. Dia tidak akan membuatmu menunggu)
Sekarang, kita perlu mencari kode sumbernya di suatu tempat. Dan ada 2 pilihan:
Sekarang mari kita beralih ke deskripsi ketergantungan. Di halaman ini Anda dapat mengunduh kode sumbernya. Bagus, sekarang kodenya sudah diunduh. Yang tersisa hanyalah menghubungkan perpustakaan. Ini terhubung dengan sangat sederhana. Kita perlu membuka pengaturan proyek:
Di sana kami memilih "Perpustakaan" dan menambahkan kode sumber yang diterima ke bagian "Sumber", dan di bagian "Kelas" kami menunjukkan file jar perpustakaan itu sendiri dari direktori WildFly, yang kami temukan menggunakan Far Manager. Setelah ini, saat kita menavigasi melalui F7, kita akan melihat konten kelas AbstrakEntityManager dan TransactionScopedEntityManager, dan juga akan tersedia melalui pencarian berdasarkan kelas menggunakan Ctrl+N.
Sekarang breakpoint hanya akan aktif jika namanya Maximilian. Dengan mengklik tombol Lainnya, serangkaian pengaturan Break Points yang diperluas akan tersedia untuk Anda.
Dan buat aturan baru untuk jenis pengecualian yang dipilih:
Misalnya untuk NPE:
#Viacheslav
Perkenalan
Bagian dari penulisan kode adalah men-debugnya. Dan jika tugas Anda menyertakan dukungan kode, akan ada lebih banyak proses debug. Selain itu, dengan bantuan debugging, Anda dapat memeriksa pekerjaan perpustakaan dan kerangka kerja yang digunakan sedalam Anda dapat membenamkan diri dalam hutan kode orang lain. Untuk menyelam, kita membutuhkan:- Lingkungan pengembangan: Edisi Komunitas Ide IntelliJ Gratis
- Menginstal Maven
- Server Aplikasi WildFly 12.0.0.Final
- Kode sumber untuk contoh resmi: Kode Sumber Mulai Cepat
bin\standalone.bat
\hibernate4\README.adoc
Seperti yang ditunjukkan dalam dokumentasi ini, kita perlu menjalankan perintah di direktori hibernate4: mvn clean package wildfly:deploy
Kami menunggu pesan bahwa pembangunan berhasil diselesaikan:
http://localhost:8080/wildfly-hibernate4
dan akan muncul halaman dengan form “ Pendaftaran Anggota ”. Jadi, persiapan eksperimen kita sudah selesai dan kita bisa mulai)) Akan ada banyak gambar di depan untuk kejelasan, jadi bersiaplah)
Debug Jarak Jauh
Jadi, kita perlu mengkonfigurasi mode Debug agar IDE kita mengontrol eksekusi kode di server aplikasi. IntelliJ Idea hadir dalam dua versi: gratis (Komunitas) dan berbayar (Ultimate). Yang terakhir ini dapat dicoba secara resmi dalam bentuk EAP. Di versi Ultimate, semuanya sederhana - server aplikasi dapat diluncurkan langsung dari IDE dalam mode debug. Namun dalam versi Komunitas Anda perlu melakukan beberapa hal secara manual. Oleh karena itu, mari kita pertimbangkan kasus yang lebih rumit, yaitu. pengaturan dalam versi Komunitas. Versi Komunitas memiliki beberapa keterbatasan. Secara khusus, Anda tidak dapat menjalankan server aplikasi darinya. Tetapi Anda dapat mengatur debugging jarak jauh (Remote Debug), ketika di suatu tempat secara terpisah terdapat server yang berjalan dengan aplikasi yang kita butuhkan. Mari gunakan deskripsi pengaturan dari sini: Debug jarak jauh Wildfly di edisi komunitas IntelliJ Idea (menyiapkan Konfigurasi Jalankan Jarak Jauh untuk port 8787). Setelah konfigurasi, kami meluncurkan konfigurasi baru dalam mode Debug:Proses debug
Mari kita debug menyimpan catatan. Untuk melakukan ini, pertama-tama kita harus memutuskan tempat yang akan kita jelajahi. Dilihat dari jendelanya, kita memerlukan tombol “Daftar”. Mari kita temukan di dalam kode. Jadi, kita memerlukan sebuah elemen, di dalamnya harus ada teks: "Daftar". Atau dia harus ada hubungannya dengan itu. KlikCtrl+Shift+F
dan cari Daftar dalam tanda kutip. Kami melihat ada satu di index.xhtml.
Ctrl+N
dan cari:
Ctrl+F12
dan cari cara mendaftarnya
Menghubungkan perpustakaan pihak ketiga untuk debugging
Pertama, kita sendiri perlu memahami perpustakaan seperti apa yang perlu dihubungkan. Cara pertama , yang paling sulit, adalah mencari di Internet. Kecepatan dan hasil untuk mendapatkan hasil sangat bergantung pada seberapa baik proyek tersebut dikelola. Misalnya, WildFly memiliki repositori terbuka. Jadi ketika kita mencari “TransactionScopedEntityManager” di Google, kita akan membuka https://github.com/wildfly/wildfly/tree/master/jpa/subsystem dan menemukan bahwa kita memerlukan wildfly-jpa. Cara kedua yang benar. Di mana servernya, lihat di sana. Berbagai cara dapat membantu dalam hal ini. Misalnya, di Windows bisa jadi Far Manager . Di bawah ini adalah contoh algoritma pencarian. Setelah menginstal dan meluncurkannya, gunakan Tab untuk beralih ke salah satu tab, menggunakanAlt+F1
tab kiri atau Alt+F2
kanan, dan pilih partisi yang kita perlukan pada hard drive. Ada kemungkinan bahwa direktori Far Manager itu sendiri terbuka di Far Manager setelah instalasi. Untuk menuju ke root disk, tekan Ctrl + \
. Menggunakan, Alt+F
buka jendela pencarian, mulailah mengetikkan nama direktori dan tekan Enter setelah direktori ditemukan. Pencarian ini cerdas dan menyoroti direktori-direktori yang cocok dengan teks pencarian. Jika Anda memasukkan karakter yang tidak ada foldernya, maka karakter tersebut tidak dapat dimasukkan. Dengan cara ini kita masuk ke direktori server aplikasi. Katakanlah kita tidak tahu di mana letak modul di server. Mungkin ini pertama kalinya dalam hidup Anda mendengar tentang sejenis Lalat Liar. Oleh karena itu, segera klik di sini Alt+F7
untuk mencari file. Jadi, logikanya menentukan: kita memerlukan file dengan perpustakaan. Artinya, kita membutuhkan toples. Seharusnya ada kelas TransactionScopedEntityManager di dalamnya. Karena class = file, lalu cari “contains”. Artinya, sesuatu seperti ini:
- Versi yang sangat bergunaeye.com
- Repositori Maven Pusat
GO TO FULL VERSION