आपको Apigee Edge दस्तावेज़ दिख रहा है.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
इस पेज पर जाएं
Apigee X दस्तावेज़. जानकारी
ResourceDoesNotExist
गड़बड़ी संदेश
गड़बड़ी के इस मैसेज के साथ, Edge के यूज़र इंटरफ़ेस (यूआई) या Edge मैनेजमेंट एपीआई के ज़रिए, एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सकता:
Error Deploying Revision <var>revision_number</var> to <var>environment</var>
Resource with name <var>ResourceURL</var> and type java does not exist.
गड़बड़ी के मैसेज का उदाहरण
Error Deploying Revision 1 to test
Resource with name myresource.jar and type java does not exist.
गड़बड़ी का स्क्रीनशॉट
वजह
अगर Javaकॉलआउट नीति में <ResourceURL>
एलिमेंट में बताया गया संसाधन, एपीआई प्रॉक्सी, एनवायरमेंट या संगठन के लेवल पर मौजूद नहीं है, तो एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सकेगा.
संक्रमण की जांच
एनवायरमेंट और संसाधन के नाम की पहचान करें. आपको यह जानकारी गड़बड़ी के मैसेज में मिल सकती है. उदाहरण के लिए, नीचे दी गई गड़बड़ी में एनवायरमेंट
test
है और <ResourceURL>
एलिमेंट में इस्तेमाल किए गए रिसॉर्स का नामmyresource.jar
है.Error Deploying Revision 1 to test Resource with name myresource.jar and type java does not exist.
Javaकॉलआउट नीति तय करें. इसके लिए, ऊपर दिए गए चरण #1 में बताए गए संसाधन का इस्तेमाल किया जा रहा है.
उदाहरण के लिए, नीचे दी गई नीति <
ResourceURL>
की वैल्यू कोmyresource.jar
के तौर पर तय करती है, जो गड़बड़ी के मैसेज में दी गई वैल्यू से मैच करती है:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <JavaCallout name="hello-java"> <ClassName>com.apigeesample.HelloJava</ClassName> <ResourceURL>java://myresource.jar</ResourceURL> </JavaCallout>
तय करें कि संसाधन या तो उस एपीआई प्रॉक्सी का हिस्सा है जो काम नहीं कर रहा या एनवायरमेंट या संगठन के लेवल पर अपलोड किया गया है. अगर ऐसा नहीं है, तो यह गड़बड़ी की वजह है.
एपीआई प्रॉक्सी लेवल पर अपलोड किए गए सभी संसाधनों को देखने के लिए, एपीआई प्रॉक्सी एडिटर के नेविगेटर पैनल में 'संसाधन' टैब पर जाएं. इस उदाहरण में, एपीआई प्रॉक्सी में कोई संसाधन अपलोड नहीं किया गया है.
संसाधन, पर्यावरण या संगठन के लेवल पर उपलब्ध हो सकते हैं. ज़्यादा जानकारी के लिए, संसाधन फ़ाइलें देखें.
यह पता लगाने के लिए कि संसाधन, एनवायरमेंट लेवल पर मौजूद है या नहीं, कर्ल का इस्तेमाल करके नीचे दिया गया एपीआई कॉल जारी करें:
curl -v -u <strong>email </strong>"https://api.enterprise.apigee.com/v1/organizations/myorg/environments/myenv/resourcefiles/java/myresource.jar"
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया हैयह पता लगाने के लिए कि संसाधन, संगठन के लेवल पर मौजूद है या नहीं, एनवायरमेंट की जानकारी को छोड़कर, कर्ल का इस्तेमाल करके नीचे दिया गया एपीआई कॉल जारी करें:
curl -v -u email "https://api.enterprise.apigee.com/v1/organizations/myorg/resourcefiles/java/myresource.jar"
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
अगर आपको इन एपीआई के रिस्पॉन्स के तौर पर 404 स्टेटस कोड मिलता है, तो इसका मतलब है कि संगठन और एनवायरमेंट, दोनों लेवल पर संसाधन उपलब्ध नहीं है.
अगर संसाधन, एपीआई प्रॉक्सी, संगठन, और एनवायरमेंट के लेवल पर उपलब्ध नहीं है, तो डिप्लॉयमेंट से जुड़ी गड़बड़ी का मैसेज दिखता है:
Resource with name myresource.jar and type java does not exist. ```
रिज़ॉल्यूशन
पक्का करें कि <ResourceURL>
एलिमेंट में बताया गया संसाधन, एपीआई प्रॉक्सी, एनवायरमेंट या संगठन के लेवल पर मौजूद हो. ज़्यादा जानकारी के लिए, संसाधन फ़ाइलें देखें.
ऊपर उदाहरण के तौर पर दिखाई गई Javaकॉलआउट नीति को ठीक करने के लिए, सही लेवल (एपीआई प्रॉक्सी, संगठन या एनवायरमेंट लेवल) पर JAR फ़ाइल अपलोड करें.
NoResourceForURL
गड़बड़ी संदेश
गड़बड़ी के इस मैसेज के साथ, Edge के यूज़र इंटरफ़ेस (यूआई) या Edge मैनेजमेंट एपीआई के ज़रिए, एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सकता:
Error in deployment for environment <var>environment</var>
The revision is deployed, but traffic cannot flow. Could not locate a resource with URL <var>ResourceURL</var>
गड़बड़ी के मैसेज का उदाहरण
Error in deployment for environment test
The revision is deployed, but traffic cannot flow. Could not locate a resource with URL java://myresource.jar
गड़बड़ी का स्क्रीनशॉट
वजह
यह गड़बड़ी तब हो सकती है, जब रिसॉर्स फ़ाइल खराब हो या उसका कुछ हिस्सा अपलोड हो, भले ही वह एपीआई प्रॉक्सी, एनवायरमेंट या संगठन के लेवल पर मौजूद हो.
संक्रमण की जांच
एनवायरमेंट और संसाधन के नाम की पहचान करें. आपको यह जानकारी गड़बड़ी के मैसेज में मिल सकती है. उदाहरण के लिए, नीचे दी गई गड़बड़ी में, एनवायरमेंट का नाम
test
है और <ResourceURL>
एलिमेंट में इस्तेमाल किए गए रिसॉर्स नामmyresource.jar
है.Error in deployment for environment test The revision is deployed, but traffic cannot flow. Could not locate a resource with URL java://myresource.jar
पक्का करें कि संसाधन को एपीआई प्रॉक्सी, एनवायरमेंट या संगठन के लेवल पर अपलोड किया गया हो. नीचे दिए गए उदाहरण में, यह देखा जा सकता है कि
myresource.jar
संसाधन को एपीआई प्रॉक्सी लेवल पर अपलोड किया गया है.संसाधन, पर्यावरण या संगठन के लेवल पर उपलब्ध हो सकते हैं. ज़्यादा जानकारी के लिए, संसाधन फ़ाइलें देखें.
यह पता लगाने के लिए कि संसाधन, एनवायरमेंट लेवल पर मौजूद है या नहीं, कर्ल का इस्तेमाल करके नीचे दिया गया एपीआई कॉल जारी करें:
curl -v -u <strong>email </strong>"https://api.enterprise.apigee.com/v1/organizations/myorg/environments/myenv/resourcefiles/java/myresource.jar"
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया हैयह पता लगाने के लिए कि संसाधन, संगठन के लेवल पर मौजूद है या नहीं, एनवायरमेंट की जानकारी को छोड़कर, कर्ल का इस्तेमाल करके नीचे दिया गया एपीआई कॉल जारी करें:
curl -v -u email "https://api.enterprise.apigee.com/v1/organizations/myorg/resourcefiles/java/myresource.jar"
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया हैअगर आपको इन एपीआई के रिस्पॉन्स के तौर पर 404 स्टेटस कोड मिलता है, तो इसका मतलब है कि संगठन और एनवायरमेंट, दोनों लेवल पर संसाधन उपलब्ध नहीं है.
रिज़ॉल्यूशन
- अगर आपको पता चलता है कि संसाधन, एपीआई प्रॉक्सी, संगठन या एनवायरमेंट के लेवल पर मौजूद है, तो संसाधन को मिटाएं और दूसरे चरण में बताए गए तरीके से उसे फिर से अपलोड करें. अगर वेबसाइट बिल्डर का इस्तेमाल नहीं किया जा रहा है, तो सीधे तीसरे चरण पर जाएं.
एपीआई प्रॉक्सी लेवल पर संसाधन मिटाने के लिए, एपीआई प्रॉक्सी एडिटर के नेविगेटर पैनल में संसाधन टैब पर जाएं और नीचे दिखाए गए तरीके के मुताबिक संसाधन के आगे बने “X” बटन पर क्लिक करें.
एनवायरमेंट या संगठन के लेवल पर संसाधन मिटाने के लिए, एपीआई कॉल पर 'मिटाएं' का इस्तेमाल करें. इसका इस्तेमाल, गड़बड़ी की पहचान करने के चरणों में पहले किया गया था. उदाहरण के लिए, पर्यावरण स्तर पर संसाधन को मिटाने के लिए, यह निर्देश डालें:
curl -X DELETE -v -u <strong>email </strong>"https://api.enterprise.apigee.com/v1/organizations/myorg/environments/myenv/resourcefiles/java/myresource.jar"
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया हैसही लेवल (एपीआई प्रॉक्सी, संगठन या एनवायरमेंट लेवल) पर JAR फ़ाइल अपलोड करें.
अगर संसाधन को फिर से अपलोड करने से मदद नहीं मिलती है, तो जिन मैसेज प्रोसेसर पर असर हुआ है उन्हें रीस्टार्ट करने की ज़रूरत है. अगर क्लाउड में Apigee Edge का इस्तेमाल किया जा रहा है, तो Apigee की सहायता टीम से संपर्क करें. अगर आप प्राइवेट क्लाउड उपयोगकर्ता हैं, तो Apigee Edge को चालू करना, बंद करना, रीस्टार्ट करना, और उसका स्टेटस देखना लेख पढ़ें.
JavaCalloutInstantiationFailed
गड़बड़ी संदेश
गड़बड़ी के इस मैसेज के साथ, Edge के यूज़र इंटरफ़ेस (यूआई) या Edge मैनेजमेंट एपीआई के ज़रिए, एपीआई प्रॉक्सी को डिप्लॉय नहीं किया जा सकता:
Error in deployment for environment <var>environment</var>
The revision is deployed, but traffic cannot flow. Failed to instantiate the JavaCallout Class <var>class_name</var>
या
Error in deployment for environment <var>environment</var>.
The revision is deployed and traffic can flow, but flow may be impaired. Failed to instantiate the JavaCallout Class <var>class_name</var>
गड़बड़ी के मैसेज का उदाहरण
Error in deployment for environment test
The revision is deployed, but traffic cannot flow. Failed to instantiate the JavaCallout Class my.class
गड़बड़ी का स्क्रीनशॉट
वजह
इस गड़बड़ी की आम वजहें ये हैं
Cause | जानकारी |
JAR फ़ाइल मौजूद नहीं है | गड़बड़ी में पहचानी गई Java क्लास वाली JAR फ़ाइल अपलोड नहीं की जाती. |
दूषित JAR फ़ाइल | गड़बड़ी में पहचानी गई Java क्लास वाली JAR फ़ाइल में गड़बड़ी है/कुछ हद तक अपलोड की गई है. |
क्लास फ़ाइल मौजूद नहीं है | गड़बड़ी में पहचानी गई Java क्लास फ़ाइल, >ResourceURL< में बताई गई JAR फ़ाइल का हिस्सा नहीं है या डिपेंडेंट JAR फ़ाइलों का इस्तेमाल किया जा सकता है. |
Java कोड से जुड़ी समस्या | कोड में कोई गड़बड़ी है. जैसे, कोड मौजूद नहीं है, कोड डिपेंडेंसी से जुड़ी समस्या या कोई अन्य समस्या है. |
सामान्य डायग्नोसिस चरण
एनवायरमेंट और क्लास के नाम की पहचान करें, जिसे इंपोर्ट नहीं किया जा सका. उदाहरण के लिए, नीचे दी गई गड़बड़ी के मैसेज में एनवायरमेंट का नाम
test
है और क्लास का नामmy.class
है:Error in deployment for environment test The revision is deployed, but traffic cannot flow. Failed to instantiate the JavaCallout Class my.class
वजह: JAR फ़ाइल मौजूद नहीं है
संक्रमण की जांच
- वह JAR फ़ाइल तय करें जिसमें क्लास (ऊपर चरण #1 में पहचानी गई) शामिल होनी चाहिए और जिसे इंस्टैंशिएट नहीं किया जा सकता.
- देखें कि खास JAR फ़ाइल को एपीआई प्रॉक्सी, संगठन या एनवायरमेंट लेवल पर अपलोड किया गया है या नहीं. अगर JAR फ़ाइल किसी भी लेवल पर अपलोड नहीं की गई है, तो 'रिज़ॉल्यूशन' पर जाएं.
- अगर JAR फ़ाइल अपलोड की गई है, तो Cause: करप्टेड JAR फ़ाइल पर जाएं.
रिज़ॉल्यूशन
- अगर JAR फ़ाइल में कोई गड़बड़ी है या उसका कुछ हिस्सा अपलोड हुआ है, तो JAR को फिर से बनाएं और सही लेवल (एपीआई प्रॉक्सी, संगठन या एनवायरमेंट लेवल) पर JAR फ़ाइल अपलोड करें.
- एपीआई प्रॉक्सी को फिर से डिप्लॉय करें.
वजह: इस्तेमाल न की जा सकने वाली JAR फ़ाइल
संक्रमण की जांच
- वह JAR फ़ाइल तय करें जिसमें क्लास (ऊपर दिए गए चरण #1 में पहचानी गई) शामिल होनी चाहिए, जिसे इंस्टैंशिएट नहीं किया जा सकता.
- देखें कि कोई JAR फ़ाइल खराब तो नहीं है. उदाहरण के लिए, अगर फ़ाइल में गड़बड़ी है या उसका कुछ हिस्सा अपलोड हुआ है, तो उसे अनजर नहीं किया जा सकता. अगर इसमें कोई गड़बड़ी है, तो 'रिज़ॉल्यूशन' पर जाएं.
- अगर JAR फ़ाइल में कोई गड़बड़ी नहीं है, तो वजह: क्लास फ़ाइल मौजूद नहीं है पर जाएं.
रिज़ॉल्यूशन
- गड़बड़ी वाली JAR फ़ाइल(फ़ाइलें) फिर से बनाएं और सही लेवल (एपीआई प्रॉक्सी, संगठन या एनवायरमेंट लेवल) पर JAR फ़ाइल अपलोड करें.
- एपीआई प्रॉक्सी को फिर से डिप्लॉय करें.
वजह: क्लास फ़ाइल मौजूद नहीं है
संक्रमण की जांच
- देखें कि कोई Java क्लास फ़ाइल (जिसकी पहचान ऊपर चरण #1 में की गई है) >ResourceURL< में दी गई JAR फ़ाइल का हिस्सा है या नहीं का इस्तेमाल किया जा सकता है.
- अगर क्लास की फ़ाइल किसी भी JAR फ़ाइल में मौजूद नहीं है, तो आपने गड़बड़ी की वजह पता कर ली है. 'रिज़ॉल्यूशन' पर जाएं.
- अगर क्लास फ़ाइल, Javaकॉलआउट नीति में बताई गई किसी JAR फ़ाइलों में मौजूद है, तो Java कोड या डिपेंडेंट क्लास में कोई ऐसी समस्या होनी चाहिए जिसकी वजह से यह गड़बड़ी हो रही हो. ए. अगर आप पब्लिक क्लाउड उपयोगकर्ता हैं, तो Apigee सहायता से संपर्क करें. बी. अगर आप प्राइवेट क्लाउड उपयोगकर्ता हैं, तो वजह: Java कोड से जुड़ी समस्या पर जाएं.
रिज़ॉल्यूशन
- छूटी हुई क्लास फ़ाइल(फ़ाइलों) के साथ JAR फिर से बनाएं और सही लेवल (एपीआई प्रॉक्सी, संगठन या एनवायरमेंट लेवल) पर JAR फ़ाइल अपलोड करें.
- एपीआई प्रॉक्सी को फिर से डिप्लॉय करें.
वजह: Java कोड से जुड़ी समस्या
सिर्फ़ प्राइवेट क्लाउड उपयोगकर्ताओं के लिए डाइग्नोस्टिक के तरीके
संक्रमण की जांच
- मैसेज प्रोसेसर के लॉग (
/opt/apigee/var/log/edge-message-processor/system.log
और/opt/apigee/var/log/edge-message-processor/configurations.log
) देखें. आपको नीचे दिए गए उदाहरण से मिलता-जुलता एक अपवाद दिख सकता है:
2019-07-05 05:40:13,240 org:myorg env:staging target:/organizations/myorg/apiproxies/MyAPI/revisions/5 action:add context-id: mode: Apigee-Main-53 ERROR CONFIG-CHANGE - AbstractConfigurator.add() : Add null to Step failed, reason: {} com.apigee.kernel.exceptions.spi.UncheckedException: Failed to instantiate the JavaCallout Class <class name> at com.apigee.steps.javacallout.JavaCalloutStepDefinition.newInstance(JavaCalloutStepDefinition.java:116) at com.apigee.messaging.runtime.StepDefinition.getStepDefinitionExecution(StepDefinition.java:218) …<snipped> Caused by: java.lang.reflect.InvocationTargetException: null at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at com.apigee.steps.javacallout.JavaCalloutStepDefinition.access$100(JavaCalloutStepDefinition.java:41) at com.apigee.steps.javacallout.JavaCalloutStepDefinition$CallOutWrapper.initialize(JavaCalloutStepDefinition.java:131) at com.apigee.steps.javacallout.JavaCalloutStepDefinition$CallOutWrapper.<init>(JavaCalloutStepDefinition.java:126) ... 42 common frames omitted Caused by: <Reason> ...<snipped>
गड़बड़ी की वजह समझने के लिए, अपवाद को ध्यान से पढ़ें. आम तौर पर, इससे आपके Java कोड में कोई समस्या हो सकती है.
रिज़ॉल्यूशन
- गड़बड़ी की वजह के आधार पर, आपको अपने Java कोड में समस्या ठीक करनी पड़ सकती है.
- छूटी हुई क्लास फ़ाइल(फ़ाइलों) के साथ JAR फिर से बनाएं और सही लेवल (एपीआई प्रॉक्सी, संगठन या एनवायरमेंट लेवल) पर JAR फ़ाइल अपलोड करें.
- एपीआई प्रॉक्सी को फिर से डिप्लॉय करें.
JAR फ़ाइल अपलोड करना
पक्का करें कि सभी ज़रूरी क्लास वाले रिसॉर्स एलिमेंट, एपीआई प्रॉक्सी, एनवायरमेंट या संगठन के लेवल पर मौजूद हों. ज़्यादा जानकारी के लिए, संसाधन फ़ाइलें देखें.
एपीआई प्रॉक्सी लेवल पर कोई संसाधन अपलोड करने के लिए, संसाधन टैब पर जाकर + (प्लस का निशान) पर क्लिक करें. इसके बाद, फ़ाइल इंपोर्ट करें चुनें और अपने कंप्यूटर से फ़ाइल अपलोड करें. फ़ाइल का नाम इससे मेल खाना चाहिए >ResourceURL< एलिमेंट का इस्तेमाल करें, लेकिन
java://
प्रीफ़िक्स के बिना.अगर आपको एक ही एनवायरमेंट में एक से ज़्यादा एपीआई प्रॉक्सी के लिए कोई संसाधन उपलब्ध कराना है, तो संसाधन को एनवायरमेंट में अपलोड करें. आपको Edge API का इस्तेमाल करना होगा, जैसा कि संसाधन फ़ाइलों में बताया गया है.
उदाहरण के लिए, एनवायरमेंट लेवल पर दी गई फ़ाइल अपलोड करने के लिए, लोकल मशीन से यहां दिया गया एपीआई कॉल डालें:
curl -v -u email -H "Content-Type: application/octet-stream" \ -X POST --data-binary @{classes.jar} \ "http://{mgmt_server}:{port}/v1/organizations/myorg/environments/myenv/resourcefiles?name=myresouce.jar&type=java"
एपीआई कॉल को उसी डायरेक्ट्री से जारी करें जिससे यह फ़ाइल है.
संगठन के सभी एनवायरमेंट में सभी एपीआई प्रॉक्सी के लिए फ़ाइल उपलब्ध कराने के लिए, बेसपाथ में एनवायरमेंट की जानकारी हटाई जा सकती है. उदाहरण के लिए:
curl -v -u email -H "Content-Type: application/octet-stream" \ -X POST --data-binary @{classes.jar} \ "http://{mgmt_server}:{port}/v1/organizations/myorg/resourcefiles?name=myresouce.jar&type=java"