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

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

ExecutionError

সমস্যার কোড

steps.javacallout.ExecutionError

সমস্যার উত্তরের বডি

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

কারণ

JavaCallout নীতি এক্সিকিউট করার সময় Java কোড কোনও ব্যতিক্রম ঘটলে বা null রিটার্ন করলে এই সমস্যা হয়।

ডায়াগনসিস

  1. সমস্যা ক্যাপচার করতে এবং কোন JavaCallout নীতি কাজ করেনি তা শনাক্ত করতে ট্রেস সেশন শুরু করুন।

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

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

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

  5. নতুন রিভিশন হিসেবে API প্রক্সি ডেপ্লয় করুন এবং API কল করুন।

  6. অন্য একটি ট্রেস সেশন শুরু করুন।

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

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

  9. এই উদাহরণে, JavaError.java ফাইলের #২৫ নম্বর লাইনে ArithmeticException (শূন্য দিয়ে ভাগ করা) হওয়ার কারণে JavaCallout নীতি কাজ করেনি।

রেজোলিউশন

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

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

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

  3. নতুন রিভিশন হিসেবে API প্রক্সি সেভ ও ডেপ্লয় করুন।