لکڻ جو ڪوڊ اڌ جنگ آهي. اهو اڃا تائين صحيح ڪم ڪرڻ جي ضرورت آهي. IDEs ۽ ڊيبگنگ جا اوزار اسان کي هن سان تمام گهڻو مدد ڪن ٿا.
IntelliJ IDEA کي مثال طور استعمال ڪندي، مان ان سان واقف ٿيڻ جي تجويز پيش ڪريان ٿو ته اسان ڪيئن ڳولي سگهون ٿا ته اسان جي ڪوڊ کي ڇا ٿيندو جڏهن اهو هلندو آهي. ڊيبگ هڪ وسيع موضوع آهي، تنهن ڪري هي جائزو هڪ غوطه خور وانگر، ڊيپ ڊائيونگ پيش نٿو ڪري. پر مون کي اميد آهي ته پڪ سان snorkeling)
اڳيون، اسان کي اهو منصوبو هلائڻو پوندو جيڪو اسان سرور تي چونڊيو آهي. اهو عمل هڪ ننڍڙي دستاويز ۾ بيان ڪيو ويو آهي جيڪو پاڻ ۾ ملي سگهي ٿو پروجيڪٽ ۾:
ان کان پوء، سرور لاگ ۾ اسين ڏسي سگھون ٿا ته نئين منصوبي کي ڪيئن "تعير" ڪيو ويو آهي:
ان کان پوء، اسان صفحي تي وڃون ٿا
جيڪڏهن سڀ ڪجهه ٺيڪ آهي، اسان هن بابت هيٺ ڏنل پيغام ڏسندا سين:
مليل ماخذ ڏانهن وڃڻ لاءِ Enter کي دٻايو:
تنهن ڪري، اسان ڏسون ٿا ته رجسٽر ڪرڻ وقت، memberController.register سڏيو ويندو آهي. ظاهر آهي، اهو ڪنهن قسم جو جاوا ڪلاس هوندو. ڪلڪ ڪريو
درحقيقت، هڪ اهڙو طبقو آهي. اچو ته ان ۾ وڃو. ظاهر آهي، اتي هڪ رجسٽري طريقو هجڻ گهرجي. ڪلڪ ڪريو
درحقيقت، اسان اهو مليو. ظاهري طور تي، رجسٽريشن هتي ٿئي ٿي، memberRegistration.register ۾ . Ctrl کي دٻايو ۽ ان ۾ "گرڻ" جي طريقي تي ڪلڪ ڪريو:
اچو ته ھاڻي ”بريڪ پوائنٽ“ يا بريڪ پوائنٽ مقرر ڪريون. هي هڪ مارڪر آهي جيڪو ٻڌائي ٿو ته ڪٿي ڪوڊ جي عمل کي روڪڻ گهرجي. هن وقت اسان کي ڪافي دلچسپ شيون سکڻ جو موقعو ملندو. ان کي رکڻ لاءِ، توھان کي ڪلڪ ڪرڻ جي ضرورت آھي جڳھ ۾ لائن نمبر جي ساڄي پاسي.
صفحي تي http://localhost:8080/wildfly-hibernate4 فيلڊ ۾ ڀريو ۽ رجسٽر بٽڻ تي ڪلڪ ڪريو. پينل تي آئيڊيا آئڪن چمڪندو:
Idea ڏانهن وڃڻ، توهان ڏسي سگهو ٿا ته ڊيبگ پينل ۾ تمام گهڻي دلچسپ معلومات آهي:
هتي توهان ڏسي سگهو ٿا اعتراض جي فيلڊ جي قيمت. مثال طور، هڪ رجسٽرڊ ميمبر ڇا تي مشتمل آهي:
زبردست. اسان ٻيو ڇا ڪري سگهون ٿا؟ اسان ڪنيڪشن مينيو کولي سگھون ٿا ۽ اتي چونڊيو ايڪسپريس جو جائزو وٺو (يا مينيو ذريعي Run -> Evaluate Expression). اڃا بهتر، ڊيبگر ڪنٽرول پينل تي:
هي هڪ بريڪ پوائنٽ تي هڪ سپر ٿڌي قابليت آهي، هر شي تائين رسائي حاصل ڪرڻ لاءِ انهي ڪوڊ پوائنٽ تائين رسائي آهي، ڪنهن به ڪوڊ کي هلائڻ لاءِ جيڪو انهي نقطي تي عمل ۾ اچي سگهي ٿو. مثال طور:
ڊيبگر ڪنٽرول پينل تي ڪنٽرول بٽڻ پڻ آهن جيڪي ذميوار آهن جتي توهان پروگرام جي وهڪري ڪنٽرول کي منتقل ڪرڻ چاهيو ٿا. ڇا اهو جادو ناهي؟) F8 (Step Out) بٽڻ کي دٻائڻ سان، اسان طريقن ۾ داخل ٿيڻ کان سواءِ ڪوڊ ذريعي هلون ٿا. F9 کي دٻائڻ سان، اسان ڊيبگر سان ڪوڊ جي لائنن ذريعي هلڻ بند ڪريون ٿا، ۽ ڊيبگر کي پروگرام جي عمل تي ڪنٽرول ڏيون ٿا. جيڪڏهن اسان F7 (Step Into) کي دٻايو، ته پوءِ اسان ڪوڊ ذريعي وڃون ٿا، هر طريقي ۾ داخل ڪنداسين جيڪو اسان رستي ۾ ملن ٿا. رستي جي ذريعي، هن معلومات بلاڪ تي خاص ڌيان ڏيو:
اهو ڏيکاري ٿو ته اسان جنهن سلسلي ۾ آهيون ۽ موجوده سلسلي جي اسٽيڪ تي طريقا. پر اهو سڀ ڪجهه ناهي. سهولت لاءِ، توهان کوليو ٿا فريم ٽيب. هن کي ڪرڻ لاء، ان کي فعال هجڻ ضروري آهي:
ھاڻي فريم ٽئب تي اسان معلومات ڏسون ٿا طريقي کان طريقي جي منتقلي بابت، ڇاڪاڻ ته Step Into استعمال ڪندي ڪوڊ ذريعي هلڻ شروع ڪيو.
جيئن اسان ڏسون ٿا، اسان هميشه کي منتقل نه ڪري سگهون ٿا جتي پروگرام هن وقت تي عمل ڪيو پيو وڃي. اسان هاڻي "getDelegate:469، AbstractEntityManager(org.jboss.as.jpa.container)" تي آهيون. پر حقيقت ۾، اسان عمل ۾ آهيون. اهو بيان ڪيل طبقي مان ثابت ٿئي ٿو:
اچو ته ان تي نظر وجهون. جيئن اسان ڄاڻون ٿا، اهو موجوده اعتراض ڏانهن اشارو ڪري ٿو. اسان TransactionScopedEntityManager تي آهيون. Idea اسان کي ڪوڊ ڇو نٿو ڏيکاري؟ حقيقت اها آهي ته IntelliJ Idea في الحال ڪنهن به TransactionScopedEntityManager جي باري ۾ ڄاڻ ناهي، ڇاڪاڻ ته اهو اسان جي منصوبي سان ڳنڍيل ناهي (اهو منصوبي جي انحصار ۾ ناهي). جڏهن هڪ ايپليڪيشن سرور هلندو آهي، اتي ڪيتريون ئي، ڪيتريون ئي مختلف لائبريريون هلنديون آهن. پر اسان انهن جي باري ۾ تمام گهٽ ڄاڻون ٿا، ڇاڪاڻ ته ... عام طور تي، اسان کي اندروني طور تي ڳولڻ جي ضرورت ناهي، اسان کي صرف ڪم ڪرڻ جي ضرورت آهي. پر ڪڏهن ڪڏهن ڪم يا راندين جي دلچسپي ان جي ضرورت آهي. پوء، توهان کي هن لائبريري بابت آئيڊيا کي آگاهي ڏيڻ جي ضرورت آهي ته جيئن اهو ڄاڻي ٿو ته ڪلاس ڪوڊ ڪٿي حاصل ڪرڻ لاء.
هاڻي اچو ته نتيجن جو انتظار ڪريون. هو توهان کي انتظار نه ڪندو)
ھاڻي اسان کي ان لاءِ سرچ ڪوڊ ڳولڻو پوندو. ۽ اتي 2 اختيار آهن:
هاڻي اچو ته انحصار کي بيان ڪرڻ ڏانهن وڃو. ھن صفحي تي توھان ڊائون لوڊ ڪري سگھو ٿا سورس ڪوڊ. چڱو، هاڻي اسان وٽ ڪوڊ ڊائون لوڊ ڪيو ويو آهي. باقي رهي ٿو لائبريري کي ڳنڍڻ. اهو انتهائي آسان سان ڳنڍيندو آهي. اسان کي پروجيڪٽ سيٽنگون کولڻ جي ضرورت آهي:
اتي اسان ”لائبريري“ کي منتخب ڪريون ٿا ۽ حاصل ڪيل سورس ڪوڊز کي ”ذريعو“ سيڪشن ۾ شامل ڪريون ٿا، ۽ ”ڪلاسس“ سيڪشن ۾ اسان وائلڊ فلائي ڊاريڪٽري مان لائبريري جار فائل پاڻ کي ظاهر ڪريون ٿا، جيڪو اسان فار مئنيجر استعمال ڪندي مليو. ان کان پوء، جڏهن اسان F7 ذريعي وڃو، اسان AbstractEntityManager ۽ TransactionScopedEntityManager ڪلاس جي مواد کي ڏسندا سين، ۽ پڻ Ctrl+N استعمال ڪندي ڪلاس جي ڳولا ذريعي دستياب ٿي ويندا.
هاڻي بريڪ پوائنٽ صرف فائر ڪندو جڏهن نالو ميڪسيميلين آهي. وڌيڪ بٽڻ کي دٻائڻ سان، بريڪ پوائنٽس لاءِ سيٽنگن جو وڌايل سيٽ توھان وٽ موجود ھوندو.
۽ چونڊيل استثنا جي قسم لاءِ نئون قاعدو ٺاھيو:
مثال طور، NPE لاء:
#وياچسلاو
تعارف
ڪوڊ لکڻ جو حصو ان کي ڊيبنگ ڪري رهيو آهي. ۽ جيڪڏهن توهان جي ڪمن ۾ ڪوڊ سپورٽ شامل آهي، اتي اڃا به وڌيڪ ڊيبگنگ هوندي. خير، ان کان علاوه، ڊيبگنگ جي مدد سان، توهان استعمال ٿيل لائبريرين ۽ فريم ورڪ جي ڪم کي تمام گهڻي حد تائين جانچي سگهو ٿا جيئن توهان پاڻ کي ڪنهن ٻئي جي ڪوڊ جي جنگل ۾ غرق ڪري سگهو ٿا. اسان جي ٻڏڻ لاء اسان کي ضرورت پوندي:- ترقياتي ماحول: مفت IntelliJ Idea Community Edition
- نصب ٿيل Maven
- وائلڊ فلائي ايپليڪيشن سرور 12.0.0.فائنل
- سرڪاري مثالن لاءِ ماخذ ڪوڊ: Quick Start Source Code
bin\standalone.bat
(يا * نڪس سسٽم لاءِ standalone.sh). (!) اهو ضروري آهي ته -debug پيٽرولر سان شروع ڪيو وڃي . اسان سرور جي شروع ٿيڻ جو انتظار ڪريون ٿا. اهي اسان ڏانهن لکندا ته اهو شروع ٿيو ۽ وقت جو اشارو ڪيو. اهو ڪجهه هن طرح نظر ايندو:
\hibernate4\README.adoc
جيئن هن دستاويز ۾ اشارو ڪيو ويو آهي، اسان کي هلائڻ جي ضرورت آهي hibernate4 ڊاريڪٽري ۾: mvn clean package wildfly:deploy
اسان هڪ پيغام جو انتظار ڪري رهيا آهيون ته تعمير ڪاميابي سان مڪمل ٿي وئي آهي:
http://localhost:8080/wildfly-hibernate4
۽ اسان کي " ميمبر رجسٽريشن " فارم سان ھڪڙو صفحو ڏسڻ گھرجي. تنهن ڪري، تجربن لاءِ اسان جي تياري مڪمل ٿي چڪي آهي ۽ اسان شروع ڪري سگهون ٿا)) واضح ڪرڻ لاءِ اڳيان ڪيتريون ئي تصويرون هونديون، تنهنڪري تيار ٿي وڃو)
ريموٽ ڊيبگ
تنهن ڪري، اسان کي ڊيبگ موڊ کي ترتيب ڏيڻ جي ضرورت آهي ته جيئن اسان جو IDE ايپليڪيشن سرور تي ڪوڊ جي عمل کي ڪنٽرول ڪري. IntelliJ Idea ٻن نسخن ۾ اچي ٿو: مفت (ڪميونٽي) ۽ ادا ڪيل (الٽيميٽ). بعد ۾ سرڪاري طور تي ڪوشش ڪري سگھجي ٿو EAP جي صورت ۾. الٽيميٽ ورزن ۾، سڀ ڪجھ سادو آهي - ايپليڪيشن سرور سڌو سنئون IDE کان ڊيبگ موڊ ۾ شروع ڪري سگھجي ٿو. پر ڪميونٽي ورزن ۾ توهان کي ڪجهه شيون دستي طور ڪرڻ گهرجن. تنهن ڪري، اچو ته هڪ وڌيڪ پيچيده ڪيس تي غور ڪريون، يعني. ڪميونٽي ورزن ۾ سيٽنگ. ڪميونٽي ورزن ۾ ڪجهه حدون آهن. خاص طور تي، توهان ان کان ايپليڪيشن سرور نه هلائي سگهو ٿا. پر توهان ريموٽ ڊيبگنگ (Remote Debug) سيٽ اپ ڪري سگهو ٿا، جڏهن ڪٿي الڳ الڳ هڪ هلندڙ سرور موجود هجي جنهن جي اسان کي ضرورت هجي. اچو ته هتي سيٽ اپ جي وضاحت استعمال ڪريون: IntelliJ Idea ڪميونٽي ايڊيشن ۾ ريموٽ ڊيبگ وائلڊ فلائي (پورٽ 8787 لاءِ ريموٽ رن ڪنفيگريشن سيٽ ڪرڻ). ترتيب ڏيڻ کان پوء، اسان اسان جي نئين ترتيب کي ڊيبگ موڊ ۾ شروع ڪيو:ڊيبگ جو عمل
اچو ته ڊيبگ ڪري رڪارڊ کي محفوظ ڪريون. هن کي ڪرڻ لاء، اسان کي پهريان ان جڳهه تي فيصلو ڪرڻو پوندو جتي اسان ڳولينداسين. ونڊو طرفان فيصلو ڪندي، اسان کي "رجسٽر" بٽڻ جي ضرورت آهي. اچو ته ان کي ڪوڊ ۾ ڳولي. تنهن ڪري، اسان کي هڪ عنصر جي ضرورت آهي، اهو متن هجڻ گهرجي: "رجسٽر". يا هن کي ان سان ڪجهه ڪرڻو پوندو. ڪلڪ ڪريوCtrl+Shift+F
۽ ڳولھيو اقتباس ۾ رجسٽر. اسان ڏسون ٿا ته هتي هڪ آهي index.xhtml تي.
Ctrl+N
۽ ڳولھيو:
Ctrl+F12
۽ رجسٽر جو طريقو ڳوليو
ڊيبگنگ لاءِ ٽئين پارٽي لائبريرين کي ڳنڍڻ
پهرين، اسان کي پاڻ کي سمجهڻ جي ضرورت آهي ته اها ڪهڙي قسم جي لائبريري آهي جنهن کي ڳنڍڻ جي ضرورت آهي. پهريون طريقو تمام ڏکيو آهي - انٽرنيٽ تي ڳولا. نتيجو ڳولڻ جي رفتار ۽ نتيجو گهڻو ڪري ان تي منحصر آهي ته منصوبي کي ڪيئن منظم ڪيو ويو. مثال طور، WildFly هڪ کليل مخزن آهي. تنهن ڪري جڏهن اسان گوگل “TransactionScopedEntityManager” ڪنداسين ته اسان https://github.com/wildfly/wildfly/tree/master/jpa/subsystem ڏانهن وينداسين ۽ ڳولينداسين ته اسان کي wildfly-jpa جي ضرورت آهي. ٻيو طريقو صحيح آهي. جتي سرور آهي، اتي ڏس. مختلف وسيلا هن سان مدد ڪري سگهن ٿيون. مثال طور، ونڊوز تي اهو ٿي سگهي ٿو Far Manager . هيٺ ڏنل ڳولا الگورتھم جو هڪ مثال آهي. ان کي انسٽال ڪرڻ ۽ لانچ ڪرڻ کان پوءِ، استعمال ڪريو ٽيب مان ھڪڙي ڏانھن سوئچ ڪرڻ لاءِ،Alt+F1
کاٻي ٽيب يا Alt+F2
ساڄي ھڪڙي کي استعمال ڪندي، ۽ ورهاڱي کي چونڊيو جيڪو اسان کي هارڊ ڊرائيو تي گھربل آھي. اهو بلڪل ممڪن آهي ته پري مئنيجر ڊاريڪٽري پاڻ کي انسٽاليشن کان پوء پري مئنيجر ۾ کليل آهي. ڊسڪ جي روٽ ڏانھن وڃڻ لاء، پريس ڪريو Ctrl + \
. استعمال ڪندي، Alt+F
سرچ ونڊو کوليو، ڊاريڪٽري جو نالو ٽائيپ ڪرڻ شروع ڪريو ۽ ڊاريڪٽري ملي وڃڻ کان پوءِ Enter کي دٻايو. ھي ڳولھا ھوشيار آھي ۽ انھن ڊاريڪٽريز کي نمايان ڪري ٿو جيڪي ڳولھا جي متن سان ملن ٿيون. جيڪڏھن توھان اکر داخل ڪريو جن لاءِ فولڊر نه آھن، پوءِ اھي اکر داخل نٿا ڪري سگھجن. هن طريقي سان اسان وڃون ٿا ايپليڪيشن سرور ڊاريڪٽري. اچو ته اسان کي خبر ناهي ته ماڊل ڪٿي آهن سرور تي. شايد اهو توهان جي زندگيءَ ۾ پهريون ڀيرو آهي جو توهان ڪنهن قسم جي وائلڊ فلائي بابت ٻڌي رهيا آهيو. تنهن ڪري، فوري طور تي ڪلڪ ڪريو هتي Alt+F7
فائلون ڳولڻ لاء. تنهن ڪري، منطق ترتيب ڏئي ٿو: اسان کي لائبريري سان فائل جي ضرورت آهي. اهو آهي، اسان کي هڪ برتن جي ضرورت آهي. اتي ھڪڙو TransactionScopedEntityManager ڪلاس ھجڻ گھرجي. ڇاڪاڻ ته class = فائل، پوءِ ڏسو ”شامل“. يعني ڪجهه هن طرح:
- سپر مفيد versioneye.com
- مرڪزي Maven مخزن
GO TO FULL VERSION