Кодты жазу - шайқастың жартысы. Ол әлі де дұрыс жұмыс істеуі үшін жасалуы керек. IDE және отладка құралдары бұл мәселеде бізге көп көмектеседі.
Мысал ретінде IntelliJ IDEA пайдалана отырып, ол іске қосылған кезде codeымызға не болатынын білуге болатындығымен танысуды ұсынамын. Debug - кең тақырып, сондықтан бұл шолу сүңгуір сияқты терең сүңгуді ұсынбайды. Бірақ мен сноркингке сенімдімін деп үміттенемін)
Әрі қарай serverде таңдаған жобаны іске қосуымыз керек. Бұл процесс жобаның өзінде табуға болатын шағын құжаттамада сипатталған:
Осыдан кейін server журналында біз жаңа жобаның қалай «орналастырылғанын» көре аламыз:
Осыдан кейін біз бетке өтіп , « Мүшені тіркеу
Егер бәрі жақсы болса, біз төменде бұл туралы хабарламаны көреміз:
Табылған көзге өту үшін Enter пернесін басыңыз:
Сонымен, біз тіркеу кезінде memberController.register шақырылатынын көреміз.Шамасы , бұл java класының бір түрі болуы керек. Басыңыз
Шынында да, мұндай сынып бар. Оған кірейік. Шамасы, тіркеу әдісі болуы керек. Тіркеу әдісін басып
Шынымен де таптық. Шамасы, тіркеу осы жерде, memberRegistration.register ішінде орын алады . Ctrl пернесін басыңыз және оған «түсу» әдісін басыңыз:
Енді «үзіліс нүктесін» немесе үзіліс нүктесін орнатайық. Бұл codeты орындау қай жерде кідірту керектігін көрсететін маркер. Осы сәтте біз көптеген қызықты нәрселерді үйренуге мүмкіндік аламыз. Оны қою үшін жол нөмірінің оң жағындағы орынды басу керек.
http://localhost:8080/wildfly-hibernate4 бетінде өрістерді толтырып, Тіркеу түймесін басыңыз. Панельдегі идея белгішесі жыпылықтайды:
Idea бөліміне өтсеңіз, жөндеу панелінде көптеген қызықты ақпарат бар екенін көре аласыз:
Мұнда сіз нысан өрістерінің мәнін көре аласыз. Мысалы, тіркелген мүше неден тұрады:
Тамаша. Тағы не істей аламыз? Біз мәтінмәндік мәзірді ашып, сол жерде Өрнекті бағалауды таңдай аламыз (немесе Іске қосу -> Өрнекті бағалау мәзірі арқылы). Жақсырақ, отладчиктің басқару тақтасында:
Бұл тоқтау нүктесіндегі өте керемет мүмкіндік, ол code нүктесі қол жеткізе алатын барлық нәрсеге қол жеткізе алады, сол нүктеде орындалуы мүмкін кез келген codeты орындауға мүмкіндік береді. Мысалы:
Сондай-ақ отладчиктің басқару тақтасында бағдарлама ағынын басқару элементін жылжытқыңыз келетін жерге жауап беретін басқару түймелері бар. Бұл сиқыр емес пе?) F8 (Step Out) түймесін басу арқылы біз әдістерді енгізбей codeты аралаймыз. F9 пернесін басу арқылы біз отладчикпен code жолдары арқылы жүруді тоқтатамыз және отладчикке бағдарламаның орындалуын бақылауды береміз. Егер біз F7 (Step Into) пернесін бассақ, жол бойында кездесетін әрбір әдісті енгізе отырып, code арқылы өтеміз. Айтпақшы, осы ақпараттық блокқа ерекше назар аударыңыз:
Бұл біз тұрған ағынды және ағымдағы ағынның стекіндегі әдістерді көрсетеді. Бірақ бұл бәрі емес. Ыңғайлы болу үшін кадрлар қойындысын ашуға болады. Мұны істеу үшін оны қосу керек:
Енді фреймдер қойындысында әдістен әдіске көшу туралы ақпаратты көреміз, өйткені Step Into арқылы code арқылы жүре бастады.
Көріп отырғанымыздай, біз әрқашан бағдарлама орындалып жатқан жерге көшіре алмаймыз. Біз қазір "getDelegate:469, AbstractEntityManager(org.jboss.as.jpa.container)" орнындамыз. Бірақ іс жүзінде біз жүзеге асырудамыз. Бұл көрсетілген сыныппен дәлелденеді:
Осыны қарастырайық. Біз білетіндей, ол ағымдағы нысанды көрсетеді. Біз TransactionScopedEntityManager қызметіндеміз. Неліктен Idea бізге codeты көрсете алмайды? IntelliJ Idea қазіргі уақытта ешқандай TransactionScopedEntityManager туралы білмейді, себебі ол біздің жобаға қосылмаған (ол жобаның тәуелділіктерінде емес). Бағдарлама serverі жұмыс істеп тұрғанда, оның ішінде жұмыс істейтін көптеген, көптеген әртүрлі кітапханалар бар. Бірақ біз олар туралы өте аз білеміз, өйткені... Жалпы, бізге ішкі дүниелерді зерттеудің қажеті жоқ, бізге тек жұмыс істеу керек. Бірақ кейде жұмыс немесе спорттық қызығушылық мұны талап етеді. Содан кейін сынып codeын қайдан алуға болатынын білу үшін Ide-ге осы кітапхана туралы хабарлау керек.
Енді нәтижесін күтейік. Ол сені күтпейді)
Енді біз оның бастапқы codeын бір жерден табуымыз керек. Және 2 нұсқа бар:
Енді тәуелділікті сипаттауға көшейік. Бұл бетте сіз бастапқы codeты жүктей аласыз. Керемет, қазір бізде code жүктелді. Кітапхананы қосу ғана қалады. Ол өте қарапайым қосылады. Біз жоба параметрлерін ашуымыз керек:
Онда біз «Кітапханаларды» таңдаймыз және алынған бастапқы codeтарды «Дереккөздер» бөліміне қосамыз, ал «Сыныптар» бөлімінде Far Manager көмегімен тапқан WildFly каталогындағы кітапхана jar файлының өзін көрсетеміз. Осыдан кейін, біз F7 арқылы шарлағанда, AbstractEntityManager және TransactionScopedEntityManager сыныбының мазмұнын көреміз, сонымен қатар Ctrl+N арқылы сынып бойынша іздеу арқылы қолжетімді боламыз.
Енді тоқтау нүктесі аты Максимorан болғанда ғана іске қосылады. «Қосымша» түймесін басу арқылы үзіліс нүктелеріне арналған кеңейтілген параметрлер жиынтығы сізге қолжетімді болады.
Таңдалған ерекшелік түрі үшін жаңа ереже жасаңыз:
Мысалы, NPE үшін:
#Вячеслав
Кіріспе
Кодты жазудың бір бөлігі оны түзету болып табылады. Егер сіздің тапсырмаларыңыз codeты қолдауды қамтыса, одан да көп жөндеу болады. Сонымен қатар, отладка көмегімен сіз пайдаланылған кітапханалар мен фреймворктардың жұмысын басқа біреудің codeының джунглиіне батыра алатындай тереңірек тексере аласыз. Біздің сүңгуіміз үшін бізге қажет:- Әзірлеу ортасы: тегін IntelliJ Idea Community Edition
- Maven орнатылды
- WildFly қолданбалы serverі 12.0.0.Final
- Ресми мысалдар үшін бастапқы code: Жылдам бастау бастапқы codeы
bin\standalone.bat
(немесе *nix жүйелері үшін standalone.sh) арқылы іске қосамыз. (!) --debug параметрінен бастау маңызды Біз serverдің іске қосылуын күтеміз. Олар бізге оның басталғанын жазып, уақытын көрсетеді. Ол келесідей болады:
\hibernate4\README.adoc
Осы құжаттамада көрсетілгендей, біз hibernate4 каталогында пәрменді іске қосуымыз керек: mvn clean package wildfly:deploy
Біз құрастыру сәтті аяқталды деген хабарды күтеміз:
http://localhost:8080/wildfly-hibernate4
» пішіні бар бетті көрсетуіміз керек . Сонымен, эксперименттерге дайындығымыз аяқталды және біз бастай аламыз)) Түсінікті болу үшін алда көп суреттер болады, сондықтан дайын болыңыз)
Қашықтан жөндеу
Сонымен, IDE қолданба serverінде codeтың орындалуын бақылайтындай етіп Debug режимін конфигурациялауымыз керек. IntelliJ Idea екі нұсқада келеді: тегін (қауымдастық) және ақылы (Ultimate). Соңғысы EAP түрінде ресми түрде сыналуы мүмкін. Ultimate нұсқасында бәрі қарапайым - қолданба serverін түзету режимінде IDE-ден тікелей іске қосуға болады. Бірақ қауымдастық нұсқасында бірнеше нәрсені қолмен орындау керек. Сондықтан, күрделірек істі қарастырайық, яғни. Қауымдастық нұсқасында орнату. Қауымдастық нұсқасында кейбір шектеулер бар. Атап айтқанда, сіз одан қолданба serverін іске қоса алмайсыз. Бірақ бір жерде бөлек жерде бізге қажет қолданбасы бар іске қосылған server болған кезде қашықтан жөндеуді (Remote Debug) орнатуға болады. Орнату сипаттамасын осы жерден қолданайық: IntelliJ Idea қауымдастық шығарылымында Wildfly қашықтан жөндеу (8787 порты үшін қашықтан іске қосу конфигурациясын орнату). Конфигурациядан кейін біз жаңа конфигурацияны Debug режимінде іске қосамыз:Түзету процесі
Жазбаны сақтау арқылы жөндеуді көрейік. Ол үшін алдымен зерттейтін жерді анықтауымыз керек. Терезеге қарағанда, бізге «Тіркеу» түймесі қажет. Оны codeтан табайық. Сонымен, бізге элемент қажет, оның мәтіні болуы керек: «Тіркеу». Немесе оның бұған қатысы болуы керек. Тырнақшалардың ішінен Тіркеу түймесін басыпCtrl+Shift+F
, іздеңіз. index.xhtml сайтында біреуі бар екенін көреміз.
Ctrl+N
және іздеңіз:
Ctrl+F12
, іздеңіз
Түзету үшін үшінші тарап кітапханаларын қосу
Біріншіден, біз оның қандай кітапханаға қосылу керектігін түсінуіміз керек. Бірінші әдіс ең қиын - Интернетте іздеу. Нәтижені табу жылдамдығы мен нәтижесі жобаның қаншалықты дұрыс басқарылғанына байланысты. Мысалы, WildFly-де ашық репозиторий бар. Сондықтан біз Google «TransactionScopedEntityManager» қолданбасын пайдаланған кезде https://github.com/wildfly/wildfly/tree/master/jpa/subsystem сайтына өтіп , бізге wildfly-jpa қажет екенін анықтаймыз. Екінші әдіс дұрыс. Сервер қай жерде, сонда қараңыз. Бұған әртүрлі құралдар көмектесе алады. Мысалы, Windows жүйесінде ол Far Manager болуы мүмкін . Төменде іздеу алгоритмінің мысалы берілген. Оны орнатып, іске қосқаннан кейін , сол жақ қойындыны немесе оң жақ қойындыны пайдаланып қойындылардың біріне ауысу үшін Tab пернесін пайдаланыңыз және қатты дискідегі қажетті бөлімді таңдаңыз. Far Manager каталогының өзі орнатудан кейін Far Manager бағдарламасында ашық болуы әбден мүмкін. Дискінің түбіріне өту үшін түймесін басыңыз . Қолдану арқылы іздеу терезесін ашыңыз, каталогтың атын теруді бастаңыз және каталог табылғаннан кейін Enter пернесін басыңыз. Бұл іздеу ақылды және іздеу мәтініне сәйкес келетін каталогтарды бөлектейді. Қалталары жоқ таңбаларды енгізсеңіз, мұндай таңбаларды енгізу мүмкін емес. Осылайша біз қолданба serverінің каталогына өтеміз. Модульдердің serverде қай жерде орналасқанын білмейміз делік. Мүмкін сіз WildFly түрі туралы өміріңізде бірінші рет естіп отырған шығарсыз. Сондықтан файлдарды іздеу үшін бірден осы жерді басыңыз. Сонымен, логика айтады: бізге кітапханасы бар файл қажет. Яғни, бізге құмыра керек. Ішінде TransactionScopedEntityManager сыныбы болуы керек. Өйткені class = файл, содан кейін «құрамында» дегенді іздеңіз. Яғни, келесідей нәрсе:Alt+F1
Alt+F2
Ctrl + \
Alt+F
Alt+F7
- Өте пайдалы versioneye.com
- Орталық Maven репозиторийі
GO TO FULL VERSION