คุณกำลังดูเอกสารประกอบ 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
สคริปต์นี้จะติดตั้ง ทรัพยากร Dependency ของ JAR ที่จำเป็นในที่เก็บ Maven ในเครื่อง - cd ไปยังไดเรกทอรี
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
- CD ถึง
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
แต่ก่อนที่คุณจะ
ให้เรียกใช้ คุณต้องทำการตั้งค่าที่รวดเร็ว
- CD ถึง
api-platform-samples/doc-samples/java-properties
- หากยังไม่ได้ดำเนินการ ให้เปิดไฟล์
../../setup/setenv.sh
และแก้ไข ตามที่ระบุด้วยข้อมูลบัญชี Apigee ของคุณ นั่นคือชื่อผู้ใช้ของคุณ (ที่อยู่อีเมล ที่เชื่อมโยงกับบัญชีของคุณ) ชื่อองค์กร และโดเมนที่คุณใช้สร้าง API การโทรเพื่อการจัดการ ตัวอย่างเช่น โดเมนสำหรับระบบคลาวด์ Edgehttps://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"));