Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến
Tài liệu về Apigee X. thông tin
Chú thích Java là gì?
Nếu mới sử dụng chú thích Java, bạn nên bắt đầu với Cách tạo chú thích Java chú thích.
Sử dụng thuộc tính trong chú thích Java
Các thuộc tính cho phép bạn chỉ định cặp tên/giá trị trong chính sách chú thích Java mà bạn có thể truy cập từ mã Java của bạn trong thời gian chạy. Bạn phải chỉ định một giá trị chuỗi cố định cho mỗi thuộc tính; bạn không thể các biến luồng tham chiếu trong phần tử này.
Hãy cùng xem một ví dụ về chú thích Java đơn giản sử dụng các thuộc tính. Trong ví dụ này, chúng tôi
tạo một proxy có chứa chính sách chú thích Java. Chính sách này sử dụng
Phần tử <Properties>
để chỉ định một cặp tên/giá trị. Trong mã Java, chúng ta
truy xuất giá trị và sử dụng giá trị đó để đặt tiêu đề phản hồi.
Tải dự án xuống
Để đơn giản hoá, bạn có thể tải dự án này xuống từ kho lưu trữ api-platform-samples của Apigee trên GitHub.
- Tải xuống hoặc sao chép api-platform-samples vào hệ thống của bạn.
- Trong cửa sổ dòng lệnh hoặc trình soạn thảo mã mà bạn chọn, hãy chuyển đến
Dự án
api-platform-samples/doc-samples/java-properties
.
Chính sách chú thích Java
Chính sách này sử dụng phần tử <Properties>
. Phần tử này cho phép bạn chỉ định
cặp tên/giá trị. Trong thời gian chạy, mã Java có thể truy cập vào các giá trị của các thuộc tính được chỉ định trong
chính sách của chúng tôi, như chúng ta sẽ xem ở phần sau.
<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>
Mã Java mẫu
Mã Java cho mẫu này cho bạn biết cách truy xuất thuộc tính đã được chỉ định trong
Chính sách chú thích Java. Trong dự án mẫu, bạn có thể tìm thấy mã nguồn trong
java-properties/callout/src/main/java/JavaProperties.java
. Chúng tôi sẽ hướng dẫn bạn
các bước biên dịch và triển khai mã này trong phần sau của chủ đề này.
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; } } }
Biên dịch mã bằng Maven
Dự án được thiết lập để bạn có thể biên dịch bằng Maven. Nếu bạn muốn sử dụng
javac
, chúng tôi cũng sẽ cung cấp một ví dụ.
- Đảm bảo rằng bạn đã cài đặt Maven:
mvn -version
- Thực thi tập lệnh
java-properties/buildsetup.sh
. Tập lệnh này sẽ cài đặt các phần phụ thuộc JAR bắt buộc trong kho lưu trữ Maven cục bộ của bạn. - cd vào thư mục
java-properties/callout
. - Thực thi Maven:
mvn clean package
- Nếu muốn, hãy xác minh rằng tệp JAR
edge-custom-policy-java-properties.jar
đã được sao chép vàojava-properties/apiproxy/resources/java
. Đây là yêu cầu bắt buộc cho các tệp JAR mà bạn muốn triển khai bằng proxy.
Biên dịch bằng javac (không bắt buộc)
Nếu muốn sử dụng javac
để biên dịch mã, bạn có thể làm như sau
tiếp theo (từ thư mục java-properties
). Đã cung cấp các tệp JAR bắt buộc
cho bạn trong thư mục java-properties/lib
.
- đĩa cd sang
api-platform-samples/doc-samples/java-properties
. - Hãy đảm bảo bạn có javac trong đường dẫn của mình.
javac -version
- Thực thi lệnh javac sau:
javac -d . -classpath ./lib/expressions-1.0.0.jar:./lib/message-flow-1.0.0.jar:. callout/src/main/java/JavaProperties.java
- Tạo tệp JAR:
jar -cvf edge-custom-policy-java-properties.jar ./com/apigeesample/JavaProperties.class
- Sao chép tệp JAR vào thư mục apiproxy/resources/java. Đây là vị trí bắt buộc
cho các tệp JAR mà bạn muốn triển khai bằng proxy.
cp edge-custom-policy-java-properties.jar apiproxy/resources/java
Triển khai và gọi proxy
Tập lệnh triển khai được cung cấp trong thư mục ./java-properties
. Nhưng trước khi bạn
chạy ứng dụng đó, bạn cần thiết lập nhanh.
- CD sang
api-platform-samples/doc-samples/java-properties
- Nếu bạn chưa thực hiện, hãy mở tệp
../../setup/setenv.sh
rồi chỉnh sửa mã này được thể hiện bằng thông tin tài khoản Apigee của bạn: tên người dùng (địa chỉ email) được liên kết với tài khoản của bạn), tên tổ chức và miền mà bạn sử dụng để tạo API các cuộc gọi quản lý. Ví dụ: đối với Cloud Cloud, miền làhttps://api.enterprise.apigee.com
; tuy nhiên, miền của bạn có thể khác nếu bạn bằng Edge Private Cloud. - Lưu tệp
setenv.sh
. - Thực thi tập lệnh triển khai:
./deploy.sh
- Nếu triển khai thành công, hãy thực thi tập lệnh gọi:
./invoke.sh
Tập lệnh gọi một lệnh cURL có dạng như sau:
curl http://$org-$env.$api_domain/java-properties
Proxy trả về tiêu đề:
X-PROPERTY-HELLO: WORLD!
. Hãy nhớ rằng trong chúng tôi đã thêm một cặp tên/giá trị thuộc tính"prop/WORLD!"
. Chú thích Java truy xuất giá trị"WORLD!"
rồi đặt giá trị đó trong tiêu đề có tên làX-PROPERTY-HELLO
:messageContext.getMessage().setHeader("X-PROPERTY-HELLO", this.properties.get("prop"));