Kod yazmaq döyüşün yarısıdır. Düzgün işləməsi üçün hələ də edilməlidir. IDE-lər və sazlama vasitələri bu işdə bizə çox kömək edir.
Nümunə olaraq IntelliJ IDEA-dan istifadə edərək kodumuz işlədikdə ona nə baş verdiyini necə öyrənə biləcəyimizlə tanış olmağı təklif edirəm. Debug geniş mövzudur, ona görə də bu baxış dalğıc kimi dərin dalğıc təklif etmir. Amma əminəm ki, snorkeling)
Daha sonra seçdiyimiz layihəni serverdə işlətməliyik. Bu proses layihənin özündə tapıla bilən kiçik sənədlərdə təsvir edilmişdir:
Bundan sonra, server jurnalında yeni layihənin necə "yerləşdirildiyini" görə bilərik:
Bundan sonra səhifəyə gedirik və “ Üzvün qeydiyyatı
Hər şey qaydasındadırsa, aşağıda bununla bağlı bir mesaj görəcəyik:
Tapılmış mənbəyə getmək üçün Enter düyməsini basın:
Beləliklə, görürük ki, qeydiyyatdan keçən zaman memberController.register çağırılır.Görünür , bu, hansısa java sinfi olmalıdır. Klikləyin
Həqiqətən də belə bir sinif var. Gəlin daxil olaq. Görünür, qeydiyyat metodu olmalıdır. Klikləyin
Doğrudan da, tapdıq. Göründüyü kimi, qeydiyyat burada, memberRegistration.register- də baş verir . Ctrl düyməsini basın və ona "düşmək" üçün metodu vurun:
İndi “qırılma nöqtəsi” və ya qırılma nöqtəsi təyin edək. Bu, kodun icrasının harada dayandırılacağını bildirən bir markerdir. Bu anda bir çox maraqlı şeyləri öyrənmək imkanımız olacaq. Bunu qoymaq üçün sətir nömrəsinin sağındakı yerə klikləmək lazımdır.
http://localhost:8080/wildfly-hibernate4 səhifəsində sahələri doldurun və Qeydiyyat düyməsini klikləyin. Paneldəki ideya ikonu yanıb-sönəcək:
Idea'ya gedərkən, debug panelində çox maraqlı məlumatların olduğunu görə bilərsiniz:
Burada obyektin sahələrinin dəyərini görə bilərsiniz. Məsələn, qeydiyyatdan keçmiş Üzv nədən ibarətdir:
Əla. Başqa nə edə bilərik? Biz kontekst menyusunu aça və orada İfadəni Qiymətləndirməni seçə bilərik (və ya Run -> Evaluate Expression menyusu vasitəsilə). Daha yaxşısı, sazlayıcı idarəetmə panelində:
Bu, kəsilmə nöqtəsində, həmin nöqtədə icra oluna bilən hər hansı kodu icra etmək üçün həmin kod nöqtəsinin daxil olduğu hər şeyə çıxışı olan super əla qabiliyyətdir. Misal üçün:
Sazlayıcı idarəetmə panelində proqram axını nəzarətini hərəkət etdirmək istədiyiniz yerə cavabdeh olan idarəetmə düymələri də var. Sehrli deyilmi?) F8 (Step Out) düyməsini sıxmaqla metodlar daxil etmədən kodu gəzirik. F9 düyməsini basaraq, biz sazlayıcı ilə kod sətirləri arasında getməyi dayandırırıq və proqramın icrası üzərində sazlayıcıya nəzarəti veririk. F7 (Step Into) düyməsini bassaq, yolda rastlaşdığımız hər bir metodu daxil edərək kodu keçəcəyik. Yeri gəlmişkən, bu məlumat blokuna xüsusi diqqət yetirin:
Bu, daxil olduğumuz mövzunu və cari ipin yığınındakı üsulları göstərir. Ancaq bu hamısı deyil. Rahatlıq üçün çərçivələr sekmesini aça bilərsiniz. Bunu etmək üçün aktivləşdirilməlidir:
İndi çərçivələr sekmesinde metoddan metoda keçid haqqında məlumat görürük, çünki Step Into istifadə edərək kodu gəzməyə başladı.
Gördüyümüz kimi, biz həmişə proqramın hazırda icra olunduğu yerə köçürülə bilmirik. Biz indi "getDelegate:469, AbstractEntityManager(org.jboss.as.jpa.container)" ünvanındayıq. Amma əslində biz icradayıq. Bu, bununla müəyyən edilmiş siniflə sübut olunur:
Gəlin buna baxaq. Bildiyimiz kimi, cari obyektə işarə edir. Biz TransactionScopedEntityManager-dəyik. Niyə Idea bizə kodu göstərə bilmir? Fakt budur ki, IntelliJ Idea hazırda heç bir TransactionScopedEntityManager haqqında bilmir, çünki layihəmizə bağlı deyil (layihə asılılıqlarında deyil). Tətbiq serveri işləyərkən onun daxilində çoxlu sayda müxtəlif kitabxanalar işləyir. Amma biz onlar haqqında çox az şey bilirik, çünki... ümumiyyətlə, bizə daxili şeyləri araşdırmaq lazım deyil, sadəcə işləmək lazımdır. Ancaq bəzən iş və ya idman marağı bunu tələb edir. Sonra Idea-a bu kitabxana haqqında məlumat verməlisiniz ki, o, sinif kodunu haradan əldə edəcəyini bilsin.
İndi isə gəlin nəticəni gözləyək. O səni gözlətməyəcək)
İndi biz haradasa onun mənbə kodunu tapmalıyıq. Və 2 seçim var:
İndi asılılığın təsvirinə keçək. Bu səhifədə mənbə kodunu yükləyə bilərsiniz. Əla, indi kodu endirmişik. Yalnız kitabxananı birləşdirmək qalır. Çox sadə bir şəkildə bağlanır. Layihə parametrlərini açmalıyıq:
Orada "Kitabxanalar" ı seçirik və alınan mənbə kodlarını "Mənbələr" bölməsinə əlavə edirik və "Siniflər" bölməsində Far Manager istifadə edərək tapdığımız WildFly qovluğundan kitabxana jar faylının özünü göstəririk. Bundan sonra biz F7-də naviqasiya etdikdə biz AbstractEntityManager və TransactionScopedEntityManager siniflərinin məzmununu görəcəyik və həmçinin Ctrl+N istifadə edərək sinif üzrə axtarış vasitəsilə əlçatan olacaqıq.
İndi kəsilmə nöqtəsi yalnız ad Maksimilian olduqda işə düşəcək. Daha çox düyməsini klikləməklə, Break Points üçün genişləndirilmiş parametrlər dəsti sizin üçün əlçatan olacaq.
Və seçilmiş istisna növü üçün yeni qayda yaradın:
Məsələn, NPE üçün:
#Viaçeslav
Giriş
Kodun yazılmasının bir hissəsi onu sazlamaqdır. Və tapşırıqlarınıza kod dəstəyi daxildirsə, daha çox sazlama olacaq. Bundan əlavə, sazlamanın köməyi ilə istifadə olunan kitabxanaların və çərçivələrin işini başqasının kodunun cəngəlliyinə qərq edə biləcəyiniz qədər dərindən yoxlaya bilərsiniz. Dalış üçün bizə lazım olacaq:- İnkişaf mühiti: Pulsuz IntelliJ Idea Community Edition
- Maven quraşdırılmışdır
- WildFly Tətbiq Serveri 12.0.0.Final
- Rəsmi nümunələr üçün mənbə kodu: Tez Başlanğıc Mənbə Kodu
bin\standalone.bat
(və ya *nix sistemləri üçün standalone.sh) istifadə edərək serveri işə salırıq. (!) --debug parametri ilə başlamaq vacibdir.Biz serverin başlamasını gözləyirik. Bizə yazacaqlar ki, o, ildə başlayıb və vaxtı göstərəcək. Bu kimi bir şey görünəcək:
\hibernate4\README.adoc
Bu sənədləşmədə göstərildiyi kimi, hibernate4 qovluğunda əmri işə salmalıyıq: mvn clean package wildfly:deploy
Quraşdırmanın uğurla başa çatdığına dair bir mesaj gözləyirik:
http://localhost:8080/wildfly-hibernate4
” forması olan bir səhifə göstərməliyik . Beləliklə, eksperimentlərə hazırlığımız tamamlandı və başlaya bilərik)) Aydınlıq üçün qarşıda çoxlu şəkillər olacaq, hazır olun)
Uzaqdan Sazlama
Beləliklə, Debug rejimini konfiqurasiya etməliyik ki, IDE proqram serverində kodun icrasına nəzarət etsin. IntelliJ Idea iki versiyada təqdim olunur: pulsuz (İcma) və pullu (Ultimate). Sonuncu rəsmi olaraq EAP şəklində sınaqdan keçirilə bilər. Ultimate versiyada hər şey sadədir - proqram serveri IDE-dən birbaşa debug rejimində işə salına bilər. Ancaq İcma versiyasında bir neçə şeyi əl ilə etməlisiniz. Buna görə də, daha mürəkkəb bir işi nəzərdən keçirək, yəni. İcma versiyasında parametr. İcma versiyasında bəzi məhdudiyyətlər var. Xüsusilə, ondan bir proqram serverini işə sala bilməzsiniz. Ancaq ayrı bir yerdə ehtiyac duyduğumuz tətbiq ilə işləyən bir server olduqda, uzaqdan sazlama (Remote Debug) qura bilərsiniz. Quraşdırmanın təsvirindən buradan istifadə edək: IntelliJ Idea icma nəşrində Wildfly-də uzaqdan debug (8787 portu üçün Remote Run Konfiqurasiyasının qurulması). Konfiqurasiyadan sonra yeni konfiqurasiyamızı Debug rejimində işə salırıq:Debug prosesi
Gəlin qeydi saxlayaraq sazlayaq. Bunun üçün ilk öncə tədqiq edəcəyimiz yerə qərar verməliyik. Pəncərəyə görə bizə "Qeydiyyatdan keç" düyməsi lazımdır. Gəlin onu kodda tapaq. Beləliklə, bizə bir element lazımdır, onun mətni olmalıdır: "Qeydiyyatdan keç". Ya da onunla bir əlaqəsi olmalıdır. KlikləyinCtrl+Shift+F
və dırnaq içərisində Qeydiyyatı axtarın. index.xhtml üzərində bir olduğunu görürük.
Ctrl+N
və axtarın:
Ctrl+F12
və qeydiyyat metodunu axtarın
Sazlama üçün üçüncü tərəf kitabxanalarının qoşulması
Birincisi, biz özümüz başa düşməliyik ki, hansı kitabxana bağlanmalıdır. Birinci yol ən çətindir - İnternetdə axtarış. Nəticənin tapılmasının sürəti və nəticəsi layihənin nə qədər yaxşı idarə olunmasından çox asılıdır. Məsələn, WildFly-nin açıq deposu var. Beləliklə, biz “TransactionScopedEntityManager” i Google-da etdikdə https://github.com/wildfly/wildfly/tree/master/jpa/subsystem səhifəsinə keçəcəyik və bizə wildfly-jpa lazım olduğunu görəcəyik. İkinci üsul düzgündür. Server haradadır, oraya baxın. Müxtəlif vasitələr bu işdə kömək edə bilər. Məsələn, Windows-da Far Manager ola bilər . Aşağıda bir axtarış alqoritmi nümunəsidir. Quraşdırıb işə saldıqdan sonra sol və ya sağ tabdan istifadə edərək nişanlardan birinə keçmək üçün Tab-dan istifadə edin və sabit diskdə bizə lazım olan bölməni seçin. Quraşdırıldıqdan sonra Far Manager qovluğunun özü Far Manager-də açıq olması olduqca mümkündür. Diskin kökünə getmək üçün düyməsini basın . İstifadə edərək, axtarış pəncərəsini açın, kataloqun adını yazmağa başlayın və kataloq tapıldıqdan sonra Enter düyməsini basın. Bu axtarış ağıllıdır və axtarış mətninə uyğun gələn qovluqları vurğulayır. Qovluq olmayan simvolları daxil etsəniz, belə simvollar daxil edilə bilməz. Bu yolla proqram serverinin kataloquna gedirik. Deyək ki, modulların serverdə harada yerləşdiyini bilmirik. Bəlkə də bu, həyatınızda ilk dəfədir ki, bir növ WildFly haqqında eşidirsiniz. Buna görə də, faylları axtarmaq üçün dərhal bura klikləyin . Beləliklə, məntiq diktə edir: bizə kitabxana ilə bir fayl lazımdır. Yəni bir banka lazımdır. İçəridə TransactionScopedEntityManager sinfi olmalıdır. Çünki class = fayl, sonra “içerir”i axtarın. Yəni belə bir şey:Alt+F1
Alt+F2
Ctrl + \
Alt+F
Alt+F7
- Super faydalı versioneye.com
- Mərkəzi Maven Repozitoriyası
GO TO FULL VERSION