Halaman ini berlaku untuk Apigee dan Apigee Hybrid.
Lihat dokumentasi
Apigee Edge.
Apa itu pemanggilan Java?
Jika Anda baru menggunakan JavaCallouts, sebaiknya mulai dengan Cara membuat balon teks Java.
Menggunakan properti dalam kebijakan JavaCallout
Properti memungkinkan Anda menentukan pasangan nama/nilai dalam kebijakan JavaCallout yang dapat Anda akses dari kode Java saat runtime. Anda harus menentukan nilai string literal untuk setiap properti; Anda tidak dapat mereferensikan variabel alur dalam elemen ini.
Mari kita pelajari contoh kebijakan JavaCallout sederhana yang menggunakan properti. Dalam contoh ini, kita
membuat proxy yang menyertakan kebijakan JavaCallout. Kebijakan menggunakan elemen
<Properties>
untuk menentukan pasangan nama/nilai. Dalam kode Java, kita
mengambil nilai dan menggunakannya untuk menyetel header respons.
Mendownload project
Untuk mempermudah, Anda dapat mendownload project ini dari repositori api-platform-samples Apigee di GitHub.
- Download atau clone api-platform-samples ke sistem Anda.
- Di terminal atau editor kode pilihan Anda, buka project
api-platform-samples/doc-samples/java-properties
.
Kebijakan JavaCallout
Kebijakan menggunakan elemen <Properties>
. Elemen ini memungkinkan Anda menentukan
pasangan nama/nilai. Saat runtime, kode Java Anda dapat mengakses nilai properti yang ditentukan dalam kebijakan, seperti yang akan kita lihat sebentar lagi.
<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>
Contoh kode Java
Kode Java untuk contoh ini menunjukkan cara mengambil properti yang ditentukan dalam
kebijakan JavaCallout. Di project contoh, Anda dapat menemukan kode sumber di
java-properties/callout/src/main/java/JavaProperties.java
. Kita akan membahas langkah-langkah untuk mengompilasi dan men-deploy kode ini nanti dalam topik ini.
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; } } }
Kompilasi kode Anda dengan Maven
Project disiapkan agar Anda dapat mengompilasi dengan Maven. Jika Anda ingin menggunakan
javac
, kami juga akan menyertakan contoh.
- Pastikan Anda telah menginstal Maven:
mvn -version
- Jalankan skrip
java-properties/buildsetup.sh
. Skrip ini menginstal dependensi JAR yang diperlukan di repositori Maven lokal Anda. - cd ke direktori
java-properties/callout
. - Jalankan Maven:
mvn clean package
- Jika Anda ingin, verifikasi bahwa file JAR
edge-custom-policy-java-properties.jar
telah disalin kejava-properties/apiproxy/resources/java
. Ini adalah lokasi yang diperlukan untuk file JAR yang ingin Anda deploy dengan proxy.
Kompilasi dengan javac (opsional)
Jika ingin menggunakan javac
untuk mengompilasi kode, Anda dapat melakukan sesuatu yang mirip dengan
berikut (dari direktori java-properties
). File JAR yang diperlukan disediakan
untuk Anda di direktori java-properties/lib
.
- cd ke
api-platform-samples/doc-samples/java-properties
. - Pastikan Anda memiliki javac di jalur Anda.
javac -version
- Jalankan perintah javac berikut:
javac -d . -classpath ./lib/expressions-1.0.0.jar:./lib/message-flow-1.0.0.jar:. callout/src/main/java/JavaProperties.java
- Buat file JAR:
jar -cvf edge-custom-policy-java-properties.jar ./com/apigeesample/JavaProperties.class
- Salin file JAR ke direktori apiproxy/resources/java. Ini adalah lokasi yang diperlukan
untuk file JAR yang ingin Anda deploy dengan proxy.
cp edge-custom-policy-java-properties.jar apiproxy/resources/java
Men-deploy dan memanggil proxy
Skrip deployment disediakan di direktori ./java-properties
. Namun, sebelum Anda
menjalankannya, Anda perlu melakukan penyiapan cepat.
- cd ke
api-platform-samples/doc-samples/java-properties
- Cara paling sederhana untuk men-deploy proxy adalah dengan mengemasnya dalam file zip dan mengupload paket proxy ke lingkungan di organisasi Apigee Anda. Lihat Membuat proxy API. Pastikan untuk menggunakan opsi Upload Proxy Bundle. Lihat juga Tips dan trik untuk mengupload proxy API dalam paket proxy di komunitas Apigee.
- Setelah proxy di-deploy, coba panggil:
curl https://$HOSTNAME/java-properties
Proxy menampilkan header:
X-PROPERTY-HELLO: WORLD!
. Ingatlah bahwa dalam kebijakan, kita menambahkan pasangan nama/nilai properti"prop/WORLD!"
. Kebijakan JavaCallout mengambil nilai"WORLD!"
dan menyetelnya di header yang disebutX-PROPERTY-HELLO
:messageContext.getMessage().setHeader("X-PROPERTY-HELLO", this.properties.get("prop"));