أنت تعرض مستندات Apigee Edge.
انتقل إلى
مستندات Apigee X. معلومات
ما هي وسيلة شرح Java؟
إذا كنت مبتدئًا في استخدام وسائل شرح Java، ننصحك بأن تبدأ بـ كيفية إنشاء Java وسيلة شرح.
استخدام السمات في وسيلة شرح Java
تتيح لك الخصائص تحديد أزواج الاسم/القيمة في سياسة وسيلة شرح Java التي يمكنك الوصول منها رمز Java في وقت التشغيل. يجب تحديد قيمة سلسلة حرفية لكل خاصية. لا يمكنك لمتغيرات التدفق المرجعي في هذا العنصر.
لنتعرف على مثال وسيلة شرح Java بسيطة يستخدم الخصائص. في هذا المثال،
إنشاء خادم وكيل يتضمن سياسة وسيلة شرح Java. تستخدم السياسة
<Properties>
لتحديد زوج من اسم/قيمة. في رمز Java،
لاسترداد القيمة واستخدامها لتعيين عنوان الاستجابة.
تنزيل المشروع
لتبسيط الأمور، يمكنك تنزيل هذا المشروع من مستودع api-platform-samples في Apigee على GitHub.
- نزِّل api-platform-samples أو استنساخها إلى نظامك.
- في محطة طرفية أو محرِّر رموز من اختيارك، انتقِل إلى
مشروع واحد (
api-platform-samples/doc-samples/java-properties
).
سياسة وسيلة شرح Java
تستخدم السياسة العنصر <Properties>
. يتيح لك هذا العنصر تحديد
أزواج الاسم/القيمة. في وقت التشغيل، يمكن لرمز Java الوصول إلى قيم الخصائص المحددة في
السياسة، كما سنرى قريبًا.
<JavaCallout name="java-callout"> <ClassName>com.apigeesample.JavaProperties</ClassName> <ResourceURL>java://edge-custom-policy-java-properties.jar</ResourceURL> <Properties> <Property name="prop">WORLD!</Property> </Properties> </JavaCallout>
نموذج رمز Java
يوضح لك رمز Java لهذا النموذج كيفية استرداد خاصية تم تحديدها في
سياسة وسيلة شرح Java. في نموذج المشروع، يمكنك العثور على رمز المصدر في
java-properties/callout/src/main/java/JavaProperties.java
سننتقل عبر
خطوات تجميع هذا الرمز ونشره لاحقًا في هذا الموضوع.
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 java.util.Map; public class JavaProperties implements Execution { private Map <String,String> properties; // read-only public JavaProperties(Map <String,String> properties) { this.properties = properties; } public ExecutionResult execute(MessageContext messageContext, ExecutionContext executionContext) { try { messageContext.getMessage().setHeader("X-PROPERTY-HELLO", this.properties.get("prop")); return ExecutionResult.SUCCESS; } catch (Exception e) { return ExecutionResult.ABORT; } } }
تجميع الرموز البرمجية باستخدام Maven
تم إعداد المشروع بحيث يمكنك تجميعه مع Maven. إذا كنت تريد استخدام
javac
، سنقوم بتضمين مثال أيضًا.
- تأكد من تثبيت Maven من خلال اتّباع الخطوات التالية:
mvn -version
- نفِّذ النص البرمجي
java-properties/buildsetup.sh
. هذا النص البرمجي يثبّت لاعتماديات JAR المطلوبة في مستودع Maven المحلي. - قرص مضغوط إلى دليل
java-properties/callout
. - تنفيذ Maven:
mvn clean package
- عليك التأكّد من أنّ ملف JAR
edge-custom-policy-java-properties.jar
إن أردت ذلك. تم نسخ إلىjava-properties/apiproxy/resources/java
. هذا هو الإجراء المطلوب مكان ملفات JAR التي تريد نشرها باستخدام خادم وكيل.
التجميع باستخدام javac (اختياري)
إذا كنت تريد استخدام javac
لتجميع الرمز، يمكنك تنفيذ شيء مشابه
التالية (من الدليل java-properties
). تتوفر ملفات JAR المطلوبة.
في دليل java-properties/lib
.
- قرص مضغوط إلى
api-platform-samples/doc-samples/java-properties
. - تأكد من وجود 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:
jar -cvf edge-custom-policy-java-properties.jar ./com/apigeesample/JavaProperties.class
- انسخ ملف JAR إلى الدليل apiproxy/resources/java. هذا هو الموقع الجغرافي المطلوب.
لملفات JAR التي تريد نشرها باستخدام خادم وكيل.
cp edge-custom-policy-java-properties.jar apiproxy/resources/java
نشر الخادم الوكيل والاتصال به
يتوفر نص برمجي للنشر في دليل ./java-properties
. ولكن قبل أن
تشغيله، تحتاج إلى إجراء إعداد سريع.
- قرص مضغوط إلى
api-platform-samples/doc-samples/java-properties
- افتح الملف
../../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-properties
يعرض الخادم الوكيل العنوان:
X-PROPERTY-HELLO: WORLD!
. تذكر أنه في أضفنا زوجًا من اسم/قيمة السمة"prop/WORLD!"
. وسيلة شرح Java استرداد القيمة"WORLD!"
وتعيينها في عنوان يُسمىX-PROPERTY-HELLO
:messageContext.getMessage().setHeader("X-PROPERTY-HELLO", this.properties.get("prop"));