Esta é a documentação do Apigee Edge.
Acesse
Documentação da Apigee X. informações
O que é uma frase de destaque do Java?
Se você é iniciante nas chamadas do Java, comece com Como criar uma frase de destaque Java.
Como solucionar erros em uma chamada do Java
Ao escrever uma chamada do Java, é possível querer lidar com erros personalizados no seu código Java. Para exemplo, talvez você queira retornar mensagens de erro e cabeçalhos personalizados e/ou definir variáveis de fluxo com informações de erro no fluxo de proxy no Edge.
Vejamos um exemplo simples de frase de destaque Java que ilustra padrões básicos de tratamento de erros personalizados. A amostra retorna uma mensagem de erro personalizada quando ocorre uma exceção. Ele também coloca o rastreamento de pilha de erros em uma variável de fluxo, o que pode ser uma técnica útil de depuração.
Fazer o download do projeto
Para simplificar, faça o download deste projeto do repositório api-platform-samples da Apigee no GitHub.
- Faça o download ou clone api-platform-samples no seu sistema.
- Em um terminal ou editor de código de sua escolha, acesse o projeto
api-platform-samples/doc-samples/java-error
.
A amostra de código Java
Os padrões de tratamento de erros são simples. É possível definir variáveis de fluxo no fluxo
Contexto de fluxo de borda com o método messageContext.setVariable()
. Para retornar informações de
erro personalizadas, crie uma instância do ExecutionResult
e chame métodos nela para
definir a resposta e os cabeçalhos dos erros.
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; } } }
Compile seu código com o Maven
O projeto é configurado para que você possa compilar com o Maven. Se você quiser usar
javac
, incluiremos um exemplo também.
- Verifique se o Maven está instalado:
mvn -version
- Execute o script a
java-error/buildsetup.sh
. Esse script instala as dependências JAR necessárias no seu repositório Maven local. - cd para o diretório
java-error/callout
. - Execute o Maven:
mvn clean package
- Se você quiser, verifique se o arquivo JAR
edge-custom-policy-java-error.jar
foi copiado parajava-error/apiproxy/resources/java
. Este é o local necessário para os arquivos JAR que você quer implantar com um proxy.
Compilar com javac
Se você quiser usar javac
para compilar o código, faça algo semelhante
ao seguinte (do diretório java-error
). Os arquivos JAR necessários são fornecidos
a você no diretório java-error/lib
.
- cd para
api-platform-samples/doc-samples/java-error
. - Verifique se você tem javac no seu caminho.
javac -version
- Execute o seguinte comando javac:
javac -d . -classpath ./lib/expressions-1.0.0.jar:./lib/message-flow-1.0.0.jar:. callout/src/main/java/JavaProperties.java
- Copie o arquivo JAR para o diretório apiproxy/resources/java. Esse é o local necessário
para os arquivos JAR que você quer implantar com um proxy.
cp com/apigeesample/JavaProperties.class apiproxy/resources/java
Implantar e chamar o proxy
Um script de implantação é fornecido no diretório ./java-error
. Mas, antes de executá-lo,
você precisa fazer uma configuração rápida.
- cd para
api-platform-samples/doc-samples/java-error
- Abra o arquivo
../../setup/setenv.sh
e edite-o, caso ainda não tenha feito isso. conforme indicado nas informações da conta da Apigee: seu nome de usuário (o endereço de e-mail associado à sua conta), o nome da organização e o domínio que você usa para criar de gerenciamento de projetos. Por exemplo, para nuvem de borda, o domínio éhttps://api.enterprise.apigee.com
No entanto, seu domínio poderá ser diferente se você estiver usando a nuvem privada do Edge. - Salve o arquivo
setenv.sh
. - Execute o script de implantação:
./deploy.sh
- Se a implantação for bem-sucedida, execute o script de invocação:
./invoke.sh
O script de invocação chama um comando cURL parecido com este:
curl http://$org-$env.$api_domain/java-error
Como a chamada não inclui um parâmetro de consulta de "nome", o código Java gera um erro de tempo de execução. O proxy retorna esta mensagem e cabeçalho:
- Mensagem de erro:
Please specify a name parameter!
- Cabeçalho:
ExceptionClass: java.lang.RuntimeException