Java कॉलआउट नीति के रनटाइम की गड़बड़ी से जुड़ी समस्या हल करना

आपको Apigee Edge दस्तावेज़ दिख रहा है.
इस पेज पर जाएं Apigee X दस्तावेज़.
जानकारी

ExecutionError

गड़बड़ी कोड

steps.javacallout.ExecutionError

गड़बड़ी के जवाब का मुख्य हिस्सा

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

वजह

यह गड़बड़ी तब होती है, जब Java कोड कोई अपवाद दिखाता है या Javaकॉलआउट नीति लागू करते समय शून्य दिखाता है.

संक्रमण की जांच

  1. गड़बड़ी को कैप्चर करने के लिए, ट्रेस सेशन शुरू करें. साथ ही, यह पता लगाएं कि कौनसी Javaकॉलआउट नीति लागू नहीं हुई.

  2. Javaकॉलआउट नीति और इस्तेमाल किए गए संसाधन को पढ़ें. ऊपर दिए गए उदाहरण में, Javaकॉलआउट नीति hello.jar नाम के संसाधन का इस्तेमाल करती है, जैसा कि नीचे दिखाया गया है:

    <JavaCallout name="hello-java">
       <ClassName>com.apigeesample.HelloJava</ClassName>
       <ResourceURL>java://hello.jar</ResourceURL>
    </JavaCallout>
    
    
  3. Java कॉलआउट में गड़बड़ियों को मैनेज करना में बताए गए तरीके से सोर्स कोड में बदलाव करके, Java के अपवाद को किसी फ़्लो वैरिएबल में कैप्चर और स्टोर करें.

  4. जिस संसाधन (JAR फ़ाइल) पर असर हुआ है उसे कंपाइल करें और उसे अपडेट किए गए Java आर्टफ़ैक्ट से बदलें.

  5. एपीआई प्रॉक्सी को नए रिविज़न के तौर पर डिप्लॉय करें और एपीआई कॉल करें.

  6. एक और ट्रेस सेशन शुरू करें.

  7. ध्यान दें कि JAVA_STACKTRACE वैरिएबल में स्टैक ट्रेस उपलब्ध है. स्टैक ट्रेस में, असल अपवाद और उस Java सोर्स फ़ाइल और लाइन नंबर की जानकारी होती है जहां गड़बड़ी हो रही है.

  8. Java कोड की समस्या को ठीक करने के लिए, इस जानकारी का इस्तेमाल करें.

  9. इस उदाहरण में, लाइन #25 में मौजूद JavaError.java फ़ाइल में Arithmeticexcept (शून्य से भाग) की वजह से, Javaकॉलआउट नीति लागू नहीं हो सकी.

रिज़ॉल्यूशन

  1. दिए गए अपवाद के आधार पर, संबंधित Java सोर्स फ़ाइल(फ़ाइलों) में समस्या ठीक करें. a. ऊपर दिए गए उदाहरण में, अंकगणित की गड़बड़ी (शून्य से भाग देने) की वजह से समस्या हुई थी. स्टैक ट्रेस में दिख रहे सोर्स फ़ाइल और लाइन नंबर पर जाएं.

    b. शून्य से भाग नहीं किया जा सकता. इसलिए, समस्या को हल करने के लिए, कोड की गड़बड़ी वाली लाइन वाले पूरे else ब्लॉक को हटाएं.

  2. मौजूदा JAR फ़ाइल में, बदलाव की गई फ़ाइलों को सही लेवल (एपीआई प्रॉक्सी, एनवायरमेंट या संगठन) के हिसाब से बदलें, जहां यह पहले से मौजूद थी.

  3. एपीआई प्रॉक्सी को नए रिविज़न के तौर पर सेव और डिप्लॉय करें.