JavaCallout নীতি রানটাইম ত্রুটি সমস্যা সমাধান

আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশনে যান
তথ্য

এক্সিকিউশন ত্রুটি

ত্রুটি কোড

steps.javacallout.ExecutionError

ত্রুটি প্রতিক্রিয়া বডি

{
  "fault": {
    "faultstring": "Execution returned an error result",
    "detail": {
      "errorcode": "flow.execution.ExecutionReturnedFailure"
    }
  }
}

কারণ

এই ত্রুটিটি ঘটবে যদি জাভা কোড একটি ব্যতিক্রম ছুড়ে দেয় বা JavaCallout নীতি কার্যকর করার সময় শূন্য দেয়।

রোগ নির্ণয়

  1. ত্রুটি ক্যাপচার করতে এবং কোন JavaCallout নীতি ব্যর্থ হয়েছে তা সনাক্ত করতে একটি ট্রেস সেশন শুরু করুন৷

  2. JavaCallout নীতি এবং ব্যবহৃত সম্পদ পরীক্ষা করুন। উপরের উদাহরণে, JavaCallout নীতি hello.jar নামের একটি সম্পদ ব্যবহার করে, যেমনটি নীচে দেখানো হয়েছে:

    <JavaCallout name="hello-java">
       <ClassName>com.apigeesample.HelloJava</ClassName>
       <ResourceURL>java://hello.jar</ResourceURL>
    </JavaCallout>
    
    
  3. সোর্স কোড পরিবর্তন করে জাভা ব্যতিক্রম ক্যাপচার করুন এবং একটি ফ্লো ভেরিয়েবলে সঞ্চয় করুন, যেমনটি জাভা কলআউটে ত্রুটি হ্যান্ডলিং -এ বর্ণিত হয়েছে।

  4. আপডেট করা জাভা আর্টিফ্যাক্ট দিয়ে প্রভাবিত রিসোর্স (JAR ফাইল) কম্পাইল করুন এবং প্রতিস্থাপন করুন।

  5. API প্রক্সিটিকে একটি নতুন সংশোধন হিসাবে স্থাপন করুন এবং API কল করুন৷

  6. আরেকটি ট্রেস সেশন শুরু করুন।

  7. লক্ষ্য করুন যে JAVA_STACKTRACE ভেরিয়েবলে একটি স্ট্যাক ট্রেস উপলব্ধ। স্ট্যাক ট্রেস প্রকৃত ব্যতিক্রম এবং জাভা সোর্স ফাইল এবং লাইন নম্বর তালিকাভুক্ত করে যেখানে ত্রুটিটি নিক্ষেপ করা হচ্ছে।

  8. জাভা কোডে সমস্যা সমাধান করতে এই তথ্য ব্যবহার করুন।

  9. এই উদাহরণে, JavaCallout নীতি ব্যর্থ হয়েছে একটি ArithmeticException (শূন্য দ্বারা বিভাজন) লাইন #25 এ JavaError.java ফাইলে।

রেজোলিউশন

  1. নিক্ষেপ করা ব্যতিক্রমের উপর নির্ভর করে, প্রাসঙ্গিক জাভা সোর্স ফাইল(গুলি) এ সমস্যাটি ঠিক করুন। ক উপরে দেখানো উদাহরণে, সমস্যাটি একটি গাণিতিক ত্রুটি (শূন্য দ্বারা বিভাজন) দ্বারা সৃষ্ট হয়েছিল৷ স্ট্যাক ট্রেস দ্বারা নির্দেশিত নির্দিষ্ট উৎস ফাইল এবং লাইন নম্বরে যান।

    খ. যেহেতু আপনি শূন্য দ্বারা বিভাজন করতে পারবেন না, তাই সমস্যা সমাধানের জন্য কোডের ত্রুটিযুক্ত লাইন ধারণকারী সম্পূর্ণ else ব্লকটি সরিয়ে ফেলুন।

  2. সংশোধিত ফাইলগুলি সমন্বিত প্রাসঙ্গিক JAR ফাইলটিকে যথাযথ স্তরে প্রতিস্থাপন করুন (API প্রক্সি, পরিবেশ বা সংস্থা), যেখানে এটি আগে বিদ্যমান ছিল৷

  3. একটি নতুন সংশোধন হিসাবে API প্রক্সি সংরক্ষণ করুন এবং স্থাপন করুন৷