Cách sử dụng các thuộc tính trong chú thích Java

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.

  1. Tải xuống hoặc sao chép api-platform-samples vào hệ thống của bạn.
  2. 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ụ.

  1. Đảm bảo rằng bạn đã cài đặt Maven:
    mvn -version
    
  2. 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.
  3. cd vào thư mục java-properties/callout.
  4. Thực thi Maven:
    mvn clean package
    
  5. 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ào java-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.

  1. đĩa cd sang api-platform-samples/doc-samples/java-properties.
  2. Hãy đảm bảo bạn có javac trong đường dẫn của mình.

    javac -version
    
  3. 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
    
  4. Tạo tệp JAR:

    jar -cvf edge-custom-policy-java-properties.jar ./com/apigeesample/JavaProperties.class
  5. 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.

  1. CD sang api-platform-samples/doc-samples/java-properties
  2. 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.
  3. Lưu tệp setenv.sh.
  4. Thực thi tập lệnh triển khai:
    ./deploy.sh
    
  5. 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"));