البرنامج التعليمي: تصحيح تطبيق 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. في نافذة Import Projects، اختر الخيار Select root directory واختر دليل Voting . إذا اتبعت السلسلة التعليمية 1، فإن دليل Voting موجود في دليل Eclipse-workspace .

  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. في نافذة Publish Application ، حدد Local.json من القائمة المنسدلة، وانقر فوق Publish.

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

  11. انتقل إلى مستعرض الويب الخاص بك وادخل إلى localhost:8080. سيؤدي ذلك إلى الوصول تلقائيا إلى نقطة التوقف وسيقوم Eclipse بإدخال منظور تتبع الأخطاء.

الآن يمكنك تطبيق هذه الخطوات نفسها لتصحيح أي تطبيق "نسيج الخدمة" في 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. أضف المعلمة التالية في Voting/VotingApplication/VotingWebPkg/Code/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
  • إعادة توجيه السجلات إلى موقع قابل للتكوين

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