Nulis kode iku setengah perang. Iku isih kudu digawe kanggo bisa bener. IDE lan alat debugging mbantu kita akeh babagan iki.
Nggunakake IntelliJ IDEA minangka conto, Aku propose kanggo njaluk kenalan karo carane kita bisa mangerteni apa mengkono kanggo kode nalika mbukak. Debug minangka topik sing wiyar, mula review iki ora menehi nyilem jero, kaya penyelam. Nanging aku ngarep-arep snorkeling mesthi)
Sabanjure, kita kudu mbukak proyek sing wis dipilih ing server. Proses iki diterangake ing dokumentasi cilik sing bisa ditemokake ing proyek kasebut dhewe:
Sawise iki, ing log server kita bisa ndeleng kepiye proyek anyar wis "dipasang":
Sawise iku, kita pindhah menyang kaca kasebut
Yen kabeh apik, kita bakal weruh pesen ing ngisor iki:
Pencet Enter kanggo pindhah menyang sumber sing ditemokake:
Dadi, kita weruh yen ndhaptar, memberController.register diarani. Ketoke, iki kudu sawetara jinis kelas java. Klik
Pancen, ana kelas sing kaya ngono. Ayo dadi pindhah menyang. Ketoke, kudu ana cara registrasi. Klik
Pancen, kita nemokake. Ketoke, registrasi ana ing kene, ing memberRegistration.register . Pencet Ctrl lan klik ing cara kanggo "tumindak" menyang:
Ayo saiki nyetel "break point" utawa Break Point. Iki minangka panandha sing ngandhani ngendi eksekusi kode kudu ngaso. Ing wayahe iki kita bakal duwe kesempatan kanggo sinau akeh bab menarik. Kanggo sijine iku, sampeyan kudu klik ing panggonan ing sisih tengen nomer baris.
Ing kaca http://localhost:8080/wildfly-hibernate4 isi kolom lan klik tombol Register. Ikon ide ing panel bakal kedhip:
Menyang Idea, sampeyan bisa ndeleng manawa ana akeh informasi sing menarik ing panel debug:
Ing kene sampeyan bisa ndeleng nilai kolom obyek. Contone, apa anggota sing kadhaptar kalebu:
Agung. Apa maneh sing bisa kita lakoni? Kita bisa mbukak menu konteks banjur pilih Evaluate Expression ana (utawa liwat menu Run -> Evaluate Expression). Luwih apik, ing panel kontrol debugger:
Iki minangka kemampuan sing apik banget ing breakpoint, duwe akses menyang kabeh sing bisa diakses dening titik kode kasebut, kanggo nglakokake kode apa wae sing bisa dieksekusi ing titik kasebut. Tuladhane:
Ana uga tombol kontrol ing panel kontrol debugger sing tanggung jawab kanggo ngendi sampeyan pengin mindhah kontrol aliran program. Apa ora sihir?) Kanthi menet tombol F8 (Step Out), kita ngliwati kode kasebut tanpa ngetik metode. Kanthi menet F9, kita mandheg lumaku liwat baris kode karo debugger, lan menehi kontrol debugger liwat eksekusi program. Yen kita menet F7 (Step Into), banjur kita bakal mbukak kode, ngetik saben cara sing kita ketemu ing dalan. Miturut cara, mbayar manungsa waé khusus kanggo blok informasi iki:
Iki nuduhake thread kita lan cara ing tumpukan saka thread saiki. Nanging ora mung kuwi. Kanggo penak, sampeyan bisa mbukak tab pigura. Kanggo nindakake iki, kudu diaktifake:
Saiki ing tab pigura kita ndeleng informasi babagan transisi saka metode menyang metode, amarga miwiti lumaku liwat kode nggunakake Step Into.
Kaya sing kita deleng, kita ora bisa tansah ditransfer menyang ngendi program saiki lagi dieksekusi. Saiki kita ana ing "getDelegate:469, AbstractEntityManager(org.jboss.as.jpa.container)". Nanging nyatane, kita ing implementasine. Iki dibuktekake dening kelas sing ditemtokake dening iki:
Ayo ndeleng iki. Kaya sing kita ngerteni, iki nuduhake obyek sing saiki. Kita ana ing TransactionScopedEntityManager. Apa ora bisa Idea nuduhake kita kode? Kasunyatane yaiku IntelliJ Idea saiki ora ngerti babagan TransactionScopedEntityManager, amarga ora disambungake menyang proyek kita (ora ana ing dependensi proyek). Nalika server aplikasi mlaku, ana akeh perpustakaan beda sing mlaku ing njero. Nanging kita ngerti sethithik banget babagan dheweke, amarga ... umume, kita ora perlu kanggo delve menyang internals, kita mung kudu bisa. Nanging kadhangkala karya utawa kapentingan olahraga mbutuhake. Banjur, sampeyan kudu ngandhani Idea babagan perpustakaan iki supaya ngerti ngendi entuk kode kelas.
Saiki, ayo ngenteni asile. Dheweke ora bakal ngenteni sampeyan)
Saiki, kita kudu nemokake kode sumber ing endi wae. Lan ana 2 pilihan:
Saiki ayo nerusake kanggo njlèntrèhaké dependensi. Ing kaca iki sampeyan bisa ngundhuh kode sumber. Apik, saiki kita wis ngundhuh kode kasebut. Sing isih ana yaiku nyambungake perpustakaan. Iku nyambung banget prasaja. Kita kudu mbukak setelan proyek:
Ing kana kita pilih "Perpustakaan" lan nambah kode sumber sing ditampa menyang bagean "Sumber", lan ing bagean "Kelas" kita nuduhake file jar perpustakaan dhewe saka direktori WildFly, sing ditemokake nggunakake Far Manager. Sawise iki, nalika kita navigasi liwat F7, kita bakal weruh isi kelas AbstractEntityManager lan TransactionScopedEntityManager, lan uga kasedhiya liwat telusuran miturut kelas nggunakake Ctrl + N.
Saiki breakpoint mung bakal murub nalika jeneng Maximilian. Kanthi ngeklik tombol Liyane, setelan sing ditambahi kanggo Break Points bakal kasedhiya kanggo sampeyan.
Lan gawe aturan anyar kanggo jinis pangecualian sing dipilih:
Contone, kanggo NPE:
#Viacheslav
Pambuka
Bagéyan saka nulis kode yaiku debugging. Lan yen tugas sampeyan kalebu dhukungan kode, bakal ana luwih akeh debugging. Kajaba iku, kanthi bantuan debugging, sampeyan bisa mriksa karya perpustakaan lan kerangka sing digunakake kanthi jero kaya sampeyan bisa nyemplungake dhewe ing alas kode wong liya. Kanggo nyilem kita kudu:- Lingkungan pangembangan: Free IntelliJ Idea Community Edition
- Diinstal Maven
- Server Aplikasi WildFly 12.0.0.Final
- Kode sumber kanggo conto resmi: Quick Start Source Code
bin\standalone.bat
\hibernate4\README.adoc
Kaya sing dituduhake ing dokumentasi iki, kita kudu nglakokake perintah kasebut ing direktori hibernate4: mvn clean package wildfly:deploy
Kita ngenteni pesen yen mbangun wis rampung kanthi sukses:
http://localhost:8080/wildfly-hibernate4
lan kita kudu nampilake kaca kanthi formulir " Pendaftaran Anggota ". Dadi, persiapan kanggo eksperimen wis rampung lan kita bisa miwiti)) Bakal ana akeh gambar ing ngarep supaya luwih jelas, mula siyap)
Remote Debug
Dadi, kita kudu ngatur mode Debug supaya IDE kita ngontrol eksekusi kode ing server aplikasi. IntelliJ Idea kasedhiya ing rong versi: gratis (Komunitas) lan mbayar (Ultimate). Sing terakhir bisa dicoba kanthi resmi ing wangun EAP. Ing versi Ultimate, kabeh gampang - server aplikasi bisa diluncurake langsung saka IDE ing mode debug. Nanging ing versi Komunitas sampeyan kudu nindakake sawetara perkara kanthi manual. Mulane, ayo nimbang kasus sing luwih rumit, yaiku. setelan ing versi Komunitas. Versi Komunitas duwe sawetara watesan. Utamane, sampeyan ora bisa mbukak server aplikasi saka iku. Nanging sampeyan bisa nyiyapake debugging remot (Remote Debug), nalika nang endi wae kapisah ana server mlaku karo aplikasi kita kudu. Ayo nggunakake gambaran saka persiyapan saka kene: Remote debug Wildfly ing IntelliJ Idea komunitas edition (nyiyapake Remote Run Konfigurasi kanggo port 8787). Sawise konfigurasi, kita miwiti konfigurasi anyar ing mode Debug:Proses debug
Ayo debug nyimpen rekaman. Kanggo nindakake iki, kita kudu nemtokake panggonan sing bakal dijelajahi. Kang menehi kritik dening jendhela, kita kudu tombol "Register". Ayo goleki ing kode. Dadi, kita butuh unsur, mesthine duwe teks: "Register". Utawa dheweke kudu duwe soko apa karo. KlikCtrl+Shift+F
lan goleki Register ing kuotasi. We ndeleng sing ana siji ing index.xhtml.
Ctrl+N
lan goleki:
Ctrl+F12
lan goleki cara ndhaptar
Nyambungake perpustakaan pihak katelu kanggo debugging
Kaping pisanan, awake dhewe kudu ngerti apa jenis perpustakaan sing kudu disambungake. Cara pisanan sing paling angel - telusuran ing Internet. Kacepetan lan asil nemokake asil gumantung banget marang carane proyek kasebut dikelola. Contone, WildFly duwe repositori sing mbukak. Dadi nalika Google "TransactionScopedEntityManager" kita bakal pindhah menyang https://github.com/wildfly/wildfly/tree/master/jpa/subsystem lan nemokake yen kita butuh wildfly-jpa. Cara kapindho bener. Where server punika, katon ana. Macem-macem cara bisa mbantu iki. Contone, ing Windows bisa uga Far Manager . Ing ngisor iki minangka conto algoritma telusuran. Sawise diinstal lan diluncurake, gunakake Tab kanggo ngalih menyang salah sawijining tab, nggunakakeAlt+F1
tab kiwa utawa Alt+F2
sisih tengen, lan pilih partisi sing dibutuhake ing hard drive. Bisa uga direktori Far Manager dhewe mbukak ing Far Manager sawise instalasi. Kanggo pindhah menyang ROOT disk, penet Ctrl + \
. Nggunakake, Alt+F
bukak jendhela telusuran, wiwiti ngetik jeneng direktori banjur pencet Ketik sawise direktori ditemokake. Panelusuran iki pinter lan nyorot direktori sing cocog karo teks telusuran. Yen sampeyan ngetik karakter sing ora ana folder, karakter kasebut ora bisa dilebokake. Kanthi cara iki kita pindhah menyang direktori server aplikasi. Ayo dadi ngomong kita ora ngerti ngendi modul dumunung ing server. Bisa uga iki pisanan ing urip sampeyan krungu babagan sawetara jinis WildFly. Mula, langsung klik ing kene Alt+F7
kanggo nggoleki file. Dadi, logika ndhikte: kita butuh file karo perpustakaan. Sing, kita kudu jar. Mesthi ana kelas TransactionScopedEntityManager ing njero. Amarga class = file, banjur goleki "ngandhut". Yaiku, kaya mangkene:
- Super migunani versioneye.com
- Repositori Central Maven
GO TO FULL VERSION