Bạn đang xem tài liệu về Apigee Edge.
Truy cập vào
tài liệu Apigee X. thông tin
Chú thích Java là gì?
Nếu mới làm quen với chú thích Java, bạn nên bắt đầu bằng bài viết Cách tạo chú thích Java.
Sử dụng các thuộc tính trong chú thích Java
Các thuộc tính cho phép bạn chỉ định các cặp tên/giá trị trong một chính sách lệnh gọi Java mà bạn có thể truy cập từ mã Java của mình trong thời gian chạy. Bạn phải chỉ định một giá trị chuỗi cố định cho từng thuộc tính; bạn không thể tham chiếu các biến luồng trong phần tử này.
Hãy xem qua một ví dụ đơn giản về chú thích Java sử dụng các thuộc tính. Trong ví dụ này, chúng ta tạo một proxy bao gồm chính sách gọi 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 một cửa sổ dòng lệnh hoặc trình chỉnh sửa 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ác cặp tên/giá trị. Trong thời gian chạy, mã Java của bạn có thể truy cập vào các giá trị của thuộc tính được chỉ định trong chính sách, như chúng ta sẽ thấy trong thời gian ngắn.
<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 biết cách truy xuất mộ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 ta sẽ xem xét các bước để biên dịch và triển khai mã này ở 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 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ộ. - cd đến 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à vị trí bắt buộc đối với các tệp JAR mà bạn muốn triển khai bằng một 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 điều gì đó tương tự như sau (từ thư mục java-properties). Các tệp JAR bắt buộc được cung cấp cho bạn trong thư mục java-properties/lib.
- cd đến
api-platform-samples/doc-samples/java-properties. - Đảm bảo rằng 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 đối với các tệp JAR mà bạn muốn triển khai bằng một proxy.
cp edge-custom-policy-java-properties.jar apiproxy/resources/java
Triển khai và gọi proxy
Một tập lệnh triển khai được cung cấp trong thư mục ./java-properties. Nhưng trước khi chạy, bạn cần thiết lập nhanh.
- cd đến
api-platform-samples/doc-samples/java-properties - Nếu bạn chưa làm việc này, hãy mở tệp
../../setup/setenv.shvà chỉnh sửa tệp đó như hướng dẫ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 dùng để thực hiện các lệnh gọi quản lý API. Ví dụ: đối với đám mây Edge, 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 đang sử dụng Đám mây riêng tư Edge. - Lưu tệp
setenv.sh. - Thực thi tập lệnh triển khai:
./deploy.sh
- Nếu quá trình 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 sẽ 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ính sách, chúng ta đã thêm một cặp tên/giá trị thuộc tính"prop/WORLD!". Lệnh gọi Java truy xuất giá trị"WORLD!"và đặt giá trị đó trong một tiêu đề có tên làX-PROPERTY-HELLO:messageContext.getMessage().setHeader("X-PROPERTY-HELLO", this.properties.get("prop"));