Apigee Edge belgelerini görüntülüyorsunuz.
.
Git:
Apigee X belgeleri. bilgi
Java çağrısı nedir?
Java açıklama metinleri konusunda yeniyseniz Java açıklama metinleri nasıl oluşturulur? açıklama metni).
Java Açıklama Metnindeki hataları işleme
Bir Java Çağrısı yazdığınızda, Java kodunuzda özel hata işlemeyi gerçekleştirmek isteyebilirsiniz. Örneğin, özel hata mesajları ve başlıkları döndürebilir ve/veya veya Edge'deki proxy akışında gösterilen hata bilgileri.
Temel özel hata işleme sürecini gösteren basit bir Java Açıklama Metni örneğinden belirler. Bir istisna oluştuğunda örnek özel bir hata mesajı döndürür. Aynı zamanda akış değişkenine aktarmanızı sağlar. Bu, kullanışlı bir hata ayıklama tekniği olabilir.
Projeyi indirme
İşleri kolaylaştırmak için bu projeyi aşağıdaki Apigee api-platform-samples deposundan indirebilirsiniz: GitHub.
- api-platform-samples öğesini sisteminize indirin veya klonlayın.
- Tercih ettiğiniz bir terminalde veya kod düzenleyicide
api-platform-samples/doc-samples/java-error
projesi.
Örnek Java kodu
Hata giderme kalıpları basittir. Akış değişkenlerini
messageContext.setVariable()
yöntemiyle uç akış bağlamı. Özel değeri döndürmek için
hata bilgileri oluşturmak için bir ExecutionResult
örneği oluşturun ve
ve başlıkları ayarlayın.
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; } } }
.
Kodunuzu Maven ile derleyin
Proje, Maven ile derleyebileceğiniz şekilde ayarlanmıştır. Raporlarınızda
javac
, bir örnek de ekleriz.
- Maven'in yüklü olduğundan emin olun:
mvn -version
. java-error/buildsetup.sh
komut dosyasını yürütün. Bu komut dosyası, gerekli dosyayı JAR bağımlılarını yerel Maven depolarına taşıyın.- cd'yi
java-error/callout
dizinine ekleyin. - Maven'i yürütme:
mvn clean package
. - İsterseniz
edge-custom-policy-java-error.jar
JAR dosyasının şuydu olduğunu doğrulayın:java-error/apiproxy/resources/java
klasörüne kopyalandı. Bu, Proxy ile dağıtmak istediğiniz JAR dosyaları.
Javac ile derle
Kodu derlemek için javac
kullanmak isterseniz şuna benzer bir işlem yapabilirsiniz:
(java-error
dizininden). Gerekli JAR dosyaları şunun için sağlanmıştır:
sizi java-error/lib
dizininde bulabilirsiniz.
- cd'yi
api-platform-samples/doc-samples/java-error
konumuna ekleyin. - Yolunuzda javac bulunduğundan emin olun.
javac -version
- Aşağıdaki javac komutunu yürütün:
.javac -d . -classpath ./lib/expressions-1.0.0.jar:./lib/message-flow-1.0.0.jar:. callout/src/main/java/JavaProperties.java
- JAR dosyasını apiproxy/resources/java dizinine kopyalayın. Bu, gerekli konumdur
proxy ile dağıtmak istediğiniz JAR dosyaları içindir.
cp com/apigeesample/JavaProperties.class apiproxy/resources/java
Proxy'yi dağıtma ve çağırma
./java-error
dizininde bir dağıtım komut dosyası sağlandı. Ama çalıştırmadan önce
hızlı bir kurulum yapmanız gerekir.
- cd'den
api-platform-samples/doc-samples/java-error
'ye - Henüz yapmadıysanız
../../setup/setenv.sh
dosyasını açın ve düzenleyin Apigee hesap bilgilerinizle birlikte belirtildiği gibi: kullanıcı adınız (e-posta adresi hesabınızla ilişkilendirilen), kuruluşunuzun adı ve API oluşturmak için kullandığınız alan adı yönetim çağrıları. Örneğin, Edge Cloud için alanhttps://api.enterprise.apigee.com
; ancak dilerseniz kullanarak giriş yapın. setenv.sh
dosyasını kaydedin.- Dağıtım komut dosyasını yürütün:
./deploy.sh
. - Dağıtım başarılı olursa çağrı komut dosyasını yürütün:
./invoke.sh
.Çağrı komut dosyası şuna benzer bir cURL komutu çağırır:
curl http://$org-$env.$api_domain/java-error
Çağrı "ad" içermediğinden sorgu parametresinde, Java kodu bir hatası. Proxy şu mesajı ve üstbilgiyi döndürür:
- Hata mesajı:
Please specify a name parameter!
- Başlık:
ExceptionClass: java.lang.RuntimeException