البرنامج التعليمي: تصحيح تطبيق Java المنشورة على كتلة نسيج الخدمة المحلية

يُعد هذا البرنامج التعليمي جزءًا ثانيًا ضمن سلسلة. تتعلم كيفية إرفاق مصحح أخطاء بعيد باستخدام Eclipse لتطبيق "Service Fabric". بالإضافة إلى ذلك، يمكنك معرفة كيفية إعادة توجيه السجلات من التطبيقات قيد التشغيل إلى موقع ملائم للمطور.

ستتعلم في سلسلة البرامج التعليمية هذه كيفية:

في الجزء الأول من السلسلة، ستتعلم كيفية:

  • تصحيح تطبيق Java باستخدام Eclipse
  • إعادة توجيه السجلات إلى موقع قابل للتكوين

المتطلبات الأساسية

قبل أن تبدأ هذا البرنامج التعليمي:

  • إعداد بيئة التطوير الخاصة بك لنظام ⁧⁩التشغيل Mac⁧⁩ أو ⁧⁩Linux⁧⁩. اتبع الإرشادات لتثبيت Eclipse، Gradle، Service Fabric SDK وService Fabric CLI (sfctl).

قم بتنزيل تطبيق نموذج التصويت

إذا لم تقم ببناء تطبيق نموذج التصويت في ⁧⁩الجزء الأول من هذه السلسلة التعليمية⁧⁩، فإنه يمكنك تنزيله. في إطار أمر، قم بتشغيل الأمر التالي لنسخ نموذج مستودع التطبيق إلى الجهاز المحلي.

git clone https://github.com/Azure-Samples/service-fabric-java-quickstart

⁩قم بإنشاء ونشر⁧⁩ التطبيق إلى كتلة التطوير المحلي.

تصحيح تطبيق Java باستخدام Eclipse

  1. افتح Eclipse IDE على جهازك وانقر فوق File -> Import....

  2. في النافذة المنبثقة، حدد الخيار General -> المشاريع الحالية في مساحة العمل واضغط على Next.

  3. في إطار استيراد المشاريع، اختر الخيار ⁧⁩تحديد الدليل الجذر⁧⁩، واختر دليل ⁧⁩التصويت.⁧⁩ إذا اتبعت سلسلة البرنامج التعليمي واحد، فدليل ⁧⁩التصويت⁧⁩ يكون في دليل ⁧⁩مساحة عمل Eclipse⁩.

  4. تحديث entryPoint.sh على الخدمة التي ترغب في تصحيحها؛ بحيث تبدأ عملية Java بمعلمات التصحيح البعيد. لهذا البرنامج التعليمي يتم استخدام الواجهة الأمامية عديمي الجنسية: ⁧⁩Voting/VotingApplication/VotingWebPkg/Code/entryPoint.sh⁦. تم تعيين المنفذ 8001 لتصحيح الأخطاء في هذا المثال.

    java -Xdebug -Xrunjdwp:transport=dt_socket,address=8001,server=y,suspend=n -Djava.library.path=$LD_LIBRARY_PATH -jar VotingWeb.jar
    
  5. تحديث "بيان التطبيق" عن طريق تعيين عدد المثيلات أو عدد النسخ المتماثلة للخدمة التي يتم تصحيحها إلى واحد. يتجنب هذا الإعداد تعارضات المنفذ المستخدم لتصحيح الأخطاء. على سبيل المثال، بالنسبة للخدمات عديمة الحالة، قم بتعيين ⁧InstanceCount="1"⁩ ولخدمات الحالة الخاصة قم بتعيين الأحجام الهدف والصغرى المحددة للنسخة المتماثلة إلى 1 كما يلي: ⁧TargetReplicaSetSize="1" MinReplicaSetSize="1"⁩.

  6. في Eclipse IDE، حدد Run -> Debug Configurations -> Remote Java Application، واضغط على الزر New، واضبط الخصائص على النحو التالي وانقر فوق Apply.

    Name: Voting
    Project: Voting
    Connection Type: Standard
    Host: localhost
    Port: 8001
    
  7. وضع نقطة توقف على السطر 109 من ⁧⁩Voting/VotingWeb/src/statelessservice/HttpCommunicationListener.java⁦.⁩

  8. في Package Explorer، انقر بزر الماوس الأيمن فوق مشروع Voting وانقر فوق Service Fabric -> Publish Application ...

  9. في إطار ⁧⁩تطبيق النشر،⁧⁩ حدد ⁧⁩Local.js⁧⁩ من القائمة المنسدلة، وانقر فوق ⁧⁩نشر⁧⁩.

  10. في Eclipse IDE، حدد Run -> Debug Configurations -> Remote Java Application، انقر فوق تكوين Voting الذي أنشأته وانقر فوق Debug.

  11. انتقل إلى متصفح الويب الخاص بك، والوصول إلى ⁧⁩المضيف المحلي:8080⁧⁩. هذا وسوف تصل تلقائيًا إلى نقطة التوقف، وسوف الكسوف أدخل ⁧⁩منظور التصحيح⁧⁩.

الآن يمكنك تطبيق هذه الخطوات نفسها لتصحيح أي تطبيق "نسيج الخدمة" في Eclipse.

إعادة توجيه سجلات التطبيقات إلى موقع مخصص

الخطوات التالية من خلال كيفية إعادة توجيه سجلات التطبيق من الموقع الافتراضي ⁧⁩/var/log/syslog⁧⁩ إلى موقع مخصص.

  1. حاليًا، التطبيقات قيد التشغيل في كتل Service Fabric Linux فقط تدعم التقاط ملف سجل واحد. لإعداد تطبيق بحيث تنتقل السجلات دومًا إلى ⁧⁩/tmp/mysfapp0.0.log⁧⁩، إنشاء ملف المسمىlogging.properties في الموقع التالي ⁧⁩Voting/VotingApplication/VotingWebPkg/Code/logging.properties⁧⁩، وإضافة المحتوى التالي.

    handlers = java.util.logging.FileHandler
    
    java.util.logging.FileHandler.level = ALL
    java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
    
    # This value specifies your custom location.
    # You will have to ensure this path has read and write access by the process running the SF Application
    java.util.logging.FileHandler.pattern = /tmp/mysfapp0.0.log
    
  2. إضافة المعلمة التالية في ⁧⁩التصويت/ التصويت التطبيق/VotingWebPkg/رمز/entryPoint.sh⁧⁩ لأمر تنفيذ Java:

    -Djava.util.logging.config.file=logging.properties
    

    يظهر المثال التالي تنفيذ نموذج مع المصحح المرفقة، مشابهة لتنفيذ في المقطع السابق.

    java -Xdebug -Xrunjdwp:transport=dt_socket,address=8001,server=y,suspend=n -Djava.library.path=$LD_LIBRARY_PATH -Djava.util.logging.config.file=logging.properties -jar VotingWeb.jar
    

في هذه المرحلة، تعلمت كيفية تصحيح سجلات التطبيقات، والوصول إليها أثناء تطوير تطبيقات Service Fabric Java.

الخطوات التالية

في هذا الجزء من البرنامج التعليمي، تعلمت كيفية:

  • تصحيح تطبيق Java باستخدام Eclipse
  • إعادة توجيه السجلات إلى موقع قابل للتكوين

تقدم إلى البرنامج التعليمي التالي: