Przeglądasz dokumentację Apigee Edge.
Przejdź do
Dokumentacja Apigee X. informacje.
Co to jest objaśnienie w Javie?
Jeśli dopiero zaczynasz korzystać z objaśnień w języku Java, najlepiej zacznij od przeczytania artykułu o tworzeniu w języku Java: .
Postępowanie w przypadku błędów w objaśnieniu Java
Podczas pisania objaśnienia w Javie warto zastosować niestandardową obsługę błędów w kodzie Java. Dla: Na przykład można zwracać niestandardowe komunikaty o błędach i nagłówki lub ustawić zmienne przepływu za pomocą funkcji w procesie proxy w Edge.
Przyjrzyjmy się prostemu przykładowi objaśnienia w Javie, które ilustruje podstawową obsługę niestandardowych błędów. wzorów. Przykład zwraca niestandardowy komunikat o błędzie po wystąpieniu wyjątku. Umieszcza ona również ślad stosu błędów do zmiennej przepływu, co może być przydatną techniką debugowania.
Pobierz projekt
Dla ułatwienia możesz pobrać ten projekt z repozytorium Apigee api-platform-samples w witrynie GitHub.
- Pobierz lub skopiuj do systemu plik api-platform-samples.
- W wybranym terminalu lub edytorze kodu otwórz
api-platform-samples/doc-samples/java-error
projekt.
Przykładowy kod w Javie
Wzorce postępowania z błędami są proste. Zmienne przepływu możesz ustawić w bieżącej
Kontekst przepływu brzegowego z metodą messageContext.setVariable()
. Aby zwrócić niestandardowe
informacji o błędzie, utwórz instancję ExecutionResult
i wywołaj na niej metody
ustaw odpowiedź z komunikatem o błędzie i nagłówki.
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 com.apigee.flow.execution.Action; import org.apache.commons.lang.exception.ExceptionUtils; public class JavaError implements Execution { public ExecutionResult execute(MessageContext messageContext, ExecutionContext executionContext) { try { String name = messageContext.getMessage().getHeader("username"); if (name != null && name.length()>0) { messageContext.getMessage().setContent("Hello, " + name + "!"); messageContext.getMessage().removeHeader("username"); } else { throw new RuntimeException("Please specify a name parameter!"); } return ExecutionResult.SUCCESS; } catch (RuntimeException ex) { ExecutionResult executionResult = new ExecutionResult(false, Action.ABORT); //--Returns custom error message and header executionResult.setErrorResponse(ex.getMessage()); executionResult.addErrorResponseHeader("ExceptionClass", ex.getClass().getName()); //--Set flow variables -- may be useful for debugging. messageContext.setVariable("JAVA_ERROR", ex.getMessage()); messageContext.setVariable("JAVA_STACKTRACE", ExceptionUtils.getStackTrace(ex)); return executionResult; } } }
Kompilowanie kodu w narzędziu Maven
Projekt jest skonfigurowany tak, że możesz kompilować je w narzędziu Maven. Jeśli chcesz użyć funkcji
javac
, podamy również przykład.
- Sprawdź, czy masz zainstalowaną aplikację Maven:
mvn -version
- Uruchom skrypt
java-error/buildsetup.sh
. Ten skrypt instaluje wymagane Zależności JAR w lokalnym repozytorium Maven. - cd do katalogu
java-error/callout
. - Uruchom narzędzie Maven:
mvn clean package
- Jeśli chcesz, sprawdź, czy plik JAR
edge-custom-policy-java-error.jar
został skopiowano do folderujava-error/apiproxy/resources/java
. Ta lokalizacja jest wymagana dla: Pliki JAR, które chcesz wdrożyć za pomocą serwera proxy.
Kompilowanie za pomocą biblioteki javac
Jeśli do skompilowania kodu chcesz użyć narzędzia javac
, możesz zrobić coś podobnego
(z katalogu java-error
). Wymagane pliki JAR są udostępnione dla
Cię w katalogu java-error/lib
.
- CD do
api-platform-samples/doc-samples/java-error
. - Upewnij się, że ścieżka zawiera bibliotekę javac.
javac -version
- Uruchom to polecenie javac:
javac -d . -classpath ./lib/expressions-1.0.0.jar:./lib/message-flow-1.0.0.jar:. callout/src/main/java/JavaProperties.java
- Skopiuj plik JAR do katalogu apiproxy/resources/java. To jest wymagana lokalizacja
w przypadku plików JAR, które chcesz wdrożyć za pomocą serwera proxy.
cp com/apigeesample/JavaProperties.class apiproxy/resources/java
Wdróż i wywołaj serwer proxy
Skrypt wdrażania jest dostępny w katalogu ./java-error
. Ale zanim go uruchomisz,
musisz przeprowadzić szybką konfigurację.
- CD:
api-platform-samples/doc-samples/java-error
- Otwórz plik
../../setup/setenv.sh
i zmodyfikuj go (jeśli jeszcze nie jest otwarty). – zgodnie z informacjami o koncie Apigee: Twoja nazwa użytkownika (adres e-mail) powiązane z Twoim kontem), nazwę organizacji oraz domenę, której używasz do tworzenia interfejsu API rozmów z menedżerem. Na przykład w przypadku Edge Cloud domena tohttps://api.enterprise.apigee.com
; Twoja domena może być jednak inna, jeśli przy użyciu Edge Private Cloud. - Zapisz plik
setenv.sh
. - Uruchom skrypt wdrażania:
./deploy.sh
- Jeśli wdrożenie się powiedzie, uruchom skrypt wywołujący:
./invoke.sh
Skrypt wywołujący wywołuje polecenie cURL, które wygląda tak:
curl http://$org-$env.$api_domain/java-error
Ponieważ połączenie nie zawiera „nazwy”. zapytania, kod w Javie zgłasza środowisko wykonawcze . Serwer proxy zwraca ten komunikat i nagłówek:
- Komunikat o błędzie:
Please specify a name parameter!
- Nagłówek:
ExceptionClass: java.lang.RuntimeException