אתם צופים במסמכי התיעוד של Apigee ושל Apigee Hybrid.
לעיון במסמכי התיעוד של
Apigee Edge.
ResourceDoesNotExist
הודעת השגיאה
פריסת ה-proxy ל-API דרך ממשק המשתמש או ה-API של Apigee נכשלת ומוצגת הודעת השגיאה הבאה:
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.
דוגמה לצילום מסך של שגיאה

מטרה
אם המשאב שצוין ברכיב <ResourceURL> במדיניות JavaCallout לא קיים ברמת proxy ל-API או הסביבה, Deployment (פריסה) של proxy ל-API תיכשל.
אבחון
מזהים את הסביבה ואת שם המשאב. המידע הזה מופיע בהודעת השגיאה. לדוגמה, בשגיאה הבאה הסביבה היא
testושם המשאב שמשמש ברכיב <ResourceURL>הואmyresource.jar.Error Deploying Revision 1 to test Resource with name myresource.jar and type java does not exist.מזהים את מדיניות JavaCallout שמשתמשת במשאב שזוהה בשלב 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>בודקים אם המשאב הוא חלק מ-proxy ל-API שנכשל או הועלה ברמת הסביבה. אם לא, זו הסיבה לשגיאה.
עוברים לכרטיסייה Resources (משאבים) בחלונית Navigator (ניווט) של הכלי לעריכת proxy ל-API כדי לראות את כל המשאבים שהועלו ברמת proxy ל-API. בדוגמה הזו, לא הועלו משאבים ל-proxy ל-API.

משאבים יכולים להיות זמינים ברמת הסביבה. מידע נוסף זמין במאמר בנושא קובצי משאבים.
כדי לקבוע אם המשאב קיים ברמת הסביבה, מריצים את קריאת ה-API הבאה באמצעות curl:
curl \ "https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/resourcefiles/java/myresource.jar" \ -H "Authorization: Bearer $TOKEN"
$TOKENמוגדר לאסימון הגישה מסוג OAuth 2.0, כפי שמתואר במאמר קבלת אסימון גישה מסוג OAuth 2.0. מידע על האפשרויותcurlשבהן נעשה שימוש בדוגמה הזו מופיע במאמר שימוש ב-curl. תיאור של משתני הסביבה שבהם אפשר להשתמש מופיע במאמר בנושא הגדרת משתני סביבה לבקשות API של Apigee.
אם מקבלים קוד סטטוס 404 כתגובה לממשקי ה-API האלה, סימן שהמשאב חסר ברמת הסביבה.
אם המשאב לא זמין ברמת proxy ל-API וסביבה, תוחזר שגיאת Deployment (פריסה):
Resource with name myresource.jar and type java does not exist. ```
רזולוציה
מוודאים שהמשאב שצוין ברכיב <ResourceURL> אכן קיים ברמת ה-proxy ל-API או הסביבה. מידע נוסף זמין במאמר בנושא ניהול משאבים.
כדי לתקן את מדיניות JavaCallout שמוצגת למעלה, מעלים את קובץ ה-JAR ברמה המתאימה (proxy ל-API או רמת הסביבה).
NoResourceForURL
הודעת השגיאה
פריסת ה-proxy ל-API דרך ממשק המשתמש או ה-API של Apigee נכשלת ומוצגת הודעת השגיאה הבאה:
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
דוגמה לצילום מסך של שגיאה

מטרה
השגיאה הזו יכולה להופיע אם קובץ המשאבים פגום או שההעלאה שלו לא הושלמה, גם אם נראה שהוא קיים ברמת ה-proxy ל-API או הסביבה.
אבחון
מזהים את הסביבה ואת שם המשאב. המידע הזה מופיע בהודעת השגיאה. לדוגמה, בשגיאה הבאה, שם הסביבה הוא
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מוודאים שהמשאב הועלה ברמת ה-proxy ל-API או הסביבה. בדוגמה שלמטה אפשר לראות שהמשאב
myresource.jarמועלה ברמת ה-proxy ל-API.
משאבים יכולים להיות זמינים ברמת הסביבה. מידע נוסף זמין במאמר בנושא קובצי משאבים.
כדי לקבוע אם המשאב קיים ברמת הסביבה, מריצים את קריאת ה-API הבאה באמצעות curl:
curl \ "https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/resourcefiles/java/myresource.jar" \ -H "Authorization: Bearer $TOKEN"
$TOKENמוגדר לאסימון הגישה מסוג OAuth 2.0, כפי שמתואר במאמר קבלת אסימון גישה מסוג OAuth 2.0. מידע על האפשרויותcurlשבהן נעשה שימוש בדוגמה הזו מופיע במאמר שימוש ב-curl.אם מקבלים קוד סטטוס 404 כתגובה לממשקי ה-API האלה, סימן שהמשאב חסר ברמת הסביבה.
רזולוציה
- אם קובעים שהמשאב קיים ברמת ה-proxy ל-API או הסביבה, צריך למחוק את המשאב ולהעלות אותו מחדש, כמו שמתואר בשלב 2. אם לא, מדלגים לשלב 3.
כדי למחוק את מקור המידע ברמת ה-proxy ל-API, עוברים לכרטיסייה Resources (מקורות מידע) בחלונית Navigator (ניווט) של הכלי לעריכת proxy ל-API ולוחצים על הלחצן X לצד מקור המידע, כמו שמוצג בהמשך.

כדי למחוק משאב בסביבה, משתמשים בפועל DELETE בקריאות ה-API שבהן השתמשתם קודם בשלבי האבחון. לדוגמה, כדי למחוק את המשאב ברמת הסביבה, מזינים את הפקודה הבאה:
curl -X DELETE \ "https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/resourcefiles/java/myresource.jar" \ -H "Authorization: Bearer $TOKEN"
$TOKENמוגדר לאסימון הגישה מסוג OAuth 2.0, כפי שמתואר במאמר קבלת אסימון גישה מסוג OAuth 2.0. מידע על האפשרויותcurlשבהן נעשה שימוש בדוגמה הזו מופיע במאמר שימוש ב-curl.מעלים את קובץ ה-JAR) ברמה המתאימה (proxy ל-API או רמת הסביבה).
אם העלאה מחדש של המשאב לא עוזרת, אפשר לפנות אל התמיכה של Apigee.
JavaCalloutInstantiationFailed
הודעת השגיאה
פריסת ה-proxy ל-API דרך ממשק המשתמש או ה-API של Apigee נכשלת ומוצגת הודעת השגיאה הבאה:
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
דוגמה לצילום מסך של שגיאה

מטרה
אלה סיבות אופייניות לשגיאה הזו
| הסיבה | תיאור |
| חסר קובץ JAR | קובץ ה-JAR שמכיל את מחלקת Java שזוהתה בשגיאה לא הועלה. |
| קובץ JAR פגום | קובץ ה-JAR שמכיל את מחלקת ה-Java שזוהתה בשגיאה פגום או שההעלאה שלו לא הושלמה. |
| קובץ Class חסר | קובץ המחלקה של Java שזוהה בשגיאה לא נכלל בקובץ ה-JAR שצוין ב->ResourceURL< או בקובצי 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 הספציפי הועלה ברמת ה-proxy ל-API או ברמת הסביבה. אם קובץ ה-JAR לא הועלה לאף אחת מהרמות, צריך לעבור אל 'פתרון'.
- אם קובץ ה-JAR הועלה, צריך לעבור אל הסיבה: קובץ JAR פגום.
רזולוציה
- אם קובץ ה-JAR פגום או הועלה באופן חלקי, צריך לבנות מחדש את ה-JAR ולהעלות את קובץ ה-JAR ברמה המתאימה (proxy ל-API או רמת הסביבה).
- פורסים מחדש את proxy ל-API.
הסיבה: קובץ JAR פגום
אבחון
- מזהים את קובץ ה-JAR שאמור להכיל את המחלקה (שזוהתה בשלב 1 למעלה) שלא ניתן ליצור ממנה מופע.
- בודקים אם קובץ ה-JAR הספציפי פגום. לדוגמה, אם אי אפשר לבטל את ה-JAR של הקובץ כי הוא פגום או שההעלאה שלו לא הושלמה. אם הוא פגום, עוברים אל 'פתרון'.
- אם קובץ ה-JAR לא פגום, עוברים אל הסיבה: קובץ Class חסר.
רזולוציה
- בונים מחדש את קובצי ה-JAR הפגומים ומעלים את קובץ ה-JAR ברמה המתאימה (proxy ל-API או רמת הסביבה).
- פורסים מחדש את proxy ל-API.
הסיבה: קובץ כיתה חסר
אבחון
- בודקים אם קובץ מחלקת Java הספציפי (שזוהה בשלב 1 למעלה) הוא חלק מקובץ ה-JAR שצוין ב->ResourceURL< או מקובצי JAR תלויים כלשהם.
- אם קובץ הכיתה לא קיים באף אחד מקובצי ה-JAR, מצאתם את הסיבה לשגיאה. עוברים אל 'רזולוציה'.
- אם קובץ המחלקה קיים באחד מקובצי ה-JAR שצוינו במדיניות JavaCallout, כנראה שיש בעיה בקוד Java או במחלקה התלויה שגורמת לשגיאה הזו. לקבלת עזרה, אפשר לפנות אל התמיכה של Apigee.
רזולוציה
- צריך לבנות מחדש את קובץ ה-JAR עם קובצי המחלקה החסרים ולהעלות את קובץ ה-JAR ברמה המתאימה (proxy ל-API או רמת הסביבה).
- פורסים מחדש את ה-API Proxy.
העלאת קובץ JAR
מוודאים שאלמנט המשאב עם כל המחלקות הנדרשות קיים ברמת ה-API Proxy או הסביבה. מידע נוסף זמין במאמר בנושא קובצי משאבים.
כדי להעלות משאב ברמת ה-proxy ל-API, לוחצים על + (סימן הפלוס) בכרטיסייה Resources (משאבים), בוחרים באפשרות Import file (ייבוא קובץ) ומעלים קובץ מהמחשב המקומי. שם הקובץ צריך להיות זהה לרכיב >ResourceURL<, אבל בלי הקידומת
java://.
אם רוצים שמשאב יהיה זמין ליותר מ-proxy ל-API אחד באותה סביבה, צריך להעלות את המשאב לסביבה. תצטרכו להשתמש ב-Apigee API, כמו שמתואר במאמר קובצי משאבים.
לדוגמה, מזינים את הקריאה הבאה ל-API מהמחשב המקומי כדי להעלות את הקובץ שצוין ברמת הסביבה:
curl -H "Content-Type: application/octet-stream" \ -X POST -H "Authorization: Bearer $TOKEN" --data-binary @{classes.jar} \ "https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/resourcefiles?name=myresouce.jar&type=java"
$TOKENמוגדר לאסימון הגישה מסוג OAuth 2.0, כפי שמתואר במאמר קבלת אסימון גישה מסוג OAuth 2.0. מידע על האפשרויותcurlשבהן נעשה שימוש בדוגמה הזו מופיע במאמר שימוש ב-curl.מבצעים את הקריאה ל-API מאותה ספרייה שבה נמצא הקובץ.
כדי להפוך את הקובץ לזמין לכל ה-API proxies בכל הסביבות בארגון, אפשר להשמיט את פרטי הסביבה ב-basepath. לדוגמה:
curl -H "Content-Type: application/octet-stream" \ -X POST -H "Authorization: Bearer $TOKEN" --data-binary @{classes.jar} \ "https://apigee.googleapis.com/v1/organizations/$ORG/resourcefiles?name=myresouce.jar&type=java"
$TOKENמוגדר לאסימון הגישה מסוג OAuth 2.0, כפי שמתואר במאמר קבלת אסימון גישה מסוג OAuth 2.0. מידע על האפשרויותcurlשבהן נעשה שימוש בדוגמה הזו מופיע במאמר שימוש ב-curl.