आपको Apigee Edge दस्तावेज़ दिख रहा है.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
इस पेज पर जाएं
Apigee X दस्तावेज़. जानकारी
Java कॉलआउट क्या है?
अगर आप Java कॉलआउट का इस्तेमाल नहीं करते हैं, तो हमारा सुझाव है कि आप Java कॉलआउट.
Java कॉलआउट में गड़बड़ियां ठीक करना
Java कॉलआउट लिखते समय, हो सकता है कि आप अपने Java कोड में कस्टम गड़बड़ी को मैनेज करना चाहें. इसके लिए उदाहरण के लिए, कस्टम गड़बड़ी वाले मैसेज और हेडर दिखाएं और/या फ़्लो वैरिएबल के साथ Edge पर प्रॉक्सी फ़्लो में गड़बड़ी की जानकारी देता है.
आइए, Java कॉलआउट का एक आसान उदाहरण देखें. इसमें कस्टम गड़बड़ियों को मैनेज करने की बुनियादी जानकारी दिखाई गई है पैटर्न. कोई अपवाद होने पर सैंपल, कस्टम गड़बड़ी का मैसेज दिखाता है. यह गड़बड़ी को फ़्लो वैरिएबल में बदल देते हैं, जो कि डीबग करने का एक आसान तरीका हो सकता है.
प्रोजेक्ट डाउनलोड करें
चीज़ों को आसान बनाने के लिए, इस प्रोजेक्ट को Apigee api-platform-samples रिपॉज़िटरी से डाउनलोड किया जा सकता है GitHub.
- अपने सिस्टम में api-platform-samples डाउनलोड करें या उन्हें क्लोन करें.
- अपनी पसंद के टर्मिनल या कोड एडिटर में,
api-platform-samples/doc-samples/java-error
प्रोजेक्ट.
Java कोड का सैंपल
गड़बड़ियों को ठीक करने के तरीके आसान होते हैं. आपके पास मौजूदा फ़्लो वैरिएबल को सेट करने का विकल्प है.
messageContext.setVariable()
तरीके का इस्तेमाल करके, एज फ़्लो कॉन्टेक्स्ट. कस्टम स्पेस बनाने के लिए
गड़बड़ी की जानकारी, एक ExecutionResult
इंस्टेंस बनाएं और इस पर कॉल करने की विधियां
गड़बड़ी का रिस्पॉन्स और हेडर सेट करना.
package com.apigeesample; import com.apigee.flow.execution.ExecutionContext; import com.apigee.flow.execution.ExecutionResult; import com.apigee.flow.execution.spi.Execution; import com.apigee.flow.message.MessageContext; import com.apigee.flow.execution.Action; import org.apache.commons.lang.exception.ExceptionUtils; public class JavaError implements Execution { public ExecutionResult execute(MessageContext messageContext, ExecutionContext executionContext) { try { String name = messageContext.getMessage().getHeader("username"); if (name != null && name.length()>0) { messageContext.getMessage().setContent("Hello, " + name + "!"); messageContext.getMessage().removeHeader("username"); } else { throw new RuntimeException("Please specify a name parameter!"); } return ExecutionResult.SUCCESS; } catch (RuntimeException ex) { ExecutionResult executionResult = new ExecutionResult(false, Action.ABORT); //--Returns custom error message and header executionResult.setErrorResponse(ex.getMessage()); executionResult.addErrorResponseHeader("ExceptionClass", ex.getClass().getName()); //--Set flow variables -- may be useful for debugging. messageContext.setVariable("JAVA_ERROR", ex.getMessage()); messageContext.setVariable("JAVA_STACKTRACE", ExceptionUtils.getStackTrace(ex)); return executionResult; } } }
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
Maven की मदद से अपना कोड कंपाइल करना
प्रोजेक्ट को सेट अप किया गया है, ताकि उसे Maven के साथ कंपाइल किया जा सके. अगर आपको डिजिटल विज्ञापन दिखाने
javac
, हम एक उदाहरण भी शामिल करेंगे.
- पक्का करें कि आपने Maven इंस्टॉल किया हो:
mvn -version
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है java-error/buildsetup.sh
स्क्रिप्ट चलाएं. यह स्क्रिप्ट आवश्यक इंस्टॉल करती है आपके लोकल Maven रिपो में JAR डिपेंडेंसी.- cd को
java-error/callout
डायरेक्ट्री में जोड़ें. - Maven लागू करें:
mvn clean package
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है - अगर आप चाहें, तो पुष्टि करें कि JAR फ़ाइल
edge-custom-policy-java-error.jar
java-error/apiproxy/resources/java
में कॉपी किया गया. इसके लिए यह ज़रूरी जगह है JAR फ़ाइलें, जिन्हें आपको प्रॉक्सी के साथ डिप्लॉय करना है.
javac के साथ कंपाइल करें
अगर आपको कोड को कंपाइल करने के लिए javac
का इस्तेमाल करना है, तो ऐसा ही कुछ करें
(java-error
डायरेक्ट्री से) फ़ॉलो किया जा रहा है. इनके लिए ज़रूरी JAR फ़ाइलें दी गई हैं
आप java-error/lib
डायरेक्ट्री में मौजूद हैं.
- cd से
api-platform-samples/doc-samples/java-error
करने के लिए. - पक्का करें कि आपके पाथ में javac हो.
javac -version
- यह javac निर्देश चलाएं:
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया हैjavac -d . -classpath ./lib/expressions-1.0.0.jar:./lib/message-flow-1.0.0.jar:. callout/src/main/java/JavaProperties.java
- JAR फ़ाइल को apiप्रॉक्सी/resources/java डायरेक्ट्री में कॉपी करें. यह ज़रूरी जगह है
जिन्हें आप प्रॉक्सी के साथ डिप्लॉय करना चाहते हैं.
cp com/apigeesample/JavaProperties.class apiproxy/resources/java
प्रॉक्सी को डिप्लॉय करें और उसे कॉल करें
./java-error
डायरेक्ट्री में डिप्लॉय स्क्रिप्ट दी गई है. हालाँकि, इसे इस्तेमाल करने से पहले,
आपको एक क्विक सेट अप करना होगा.
- cd से
api-platform-samples/doc-samples/java-error
- अगर आपने पहले से ऐसा नहीं किया है, तो
../../setup/setenv.sh
फ़ाइल खोलें और बदलाव करें जैसा कि आपके Apigee खाते की जानकारी में बताया गया है: आपका उपयोगकर्ता नाम (ईमेल पता आपके खाते से जुड़ा हो सकता है), आपके संगठन का नाम, और वह डोमेन जिसका इस्तेमाल एपीआई बनाने के लिए किया जाता है कॉल को मैनेज करने के लिए किया जा सकता है. उदाहरण के लिए, Edge क्लाउड के लिए, डोमेनhttps://api.enterprise.apigee.com
; हालाँकि, डोमेन अलग हो सकता है अगर आप Edge Private Cloud का इस्तेमाल करें. setenv.sh
फ़ाइल सेव करें.- डिप्लॉय स्क्रिप्ट चलाएं:
./deploy.sh
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है - डिप्लॉयमेंट पूरा होने पर, शुरू करने की स्क्रिप्ट लागू करें:
./invoke.sh
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया हैशुरू करने वाली स्क्रिप्ट एक cURL निर्देश को कॉल करती है, जो ऐसा दिखता है:
curl http://$org-$env.$api_domain/java-error
क्योंकि कॉल में "नाम" शामिल नहीं है क्वेरी पैरामीटर है, तो Java कोड रनटाइम दिखाता है गड़बड़ी. प्रॉक्सी के ज़रिए यह मैसेज और हेडर दिखाया जाता है:
- गड़बड़ी संदेश:
Please specify a name parameter!
- हेडर:
ExceptionClass: java.lang.RuntimeException