Solução de problemas
O LumisXP disponibiliza um mecanismo para ajudar no entendimento e solução de problemas de endpoints REST.
Para isso, é disponibilizada uma system property que faz:
- Habilita o log do Jersey com verbosidade PAYLOAD_TEXT (valor padrão).
- Habilita o suporte a tracing do Jersey de forma sob demanda (ON_DEMAND).
Para habilitar essa opção no LumisXP e direcionar a saída do log para um arquivo específico (para auxiliar na análise), é preciso fazer os seguintes passos:
Passar a system property na inicialização do servidor de aplicação
A seguinte system property deve ser configurada com o dado valor para a aplicação:
Propriedade | Valor |
---|---|
lumis.portal.rest.enableTrace |
true |
Para exemplificar, essa propriedade poderia ser passada na linha de comando Java da seguinte maneira:
-Dlumis.portal.rest.enableTrace=true
.A forma exata de fazê-lo deve-se, no entanto, seguir as recomendações do servidor de aplicação utilizado.
Habilitar o tracing nas chamadas desejadas
Com a configuração realizada nos passos anteriores, o Jersey irá logar as chamadas para os endpoints REST mas sem muita
informação.
Caso deseje aumentar o nível de informações, pode-se habilitar o tracing em cada chamada.
Isso deve ser feito por chamada, utilizando cabeçalhos HTTP específicos do Jersey, da seguinte forma:
-
X-Jersey-Tracing-Accept
-
Habilita o tracing da requisição.
Esse cabeçalho pode ter qualquer valor. -
X-Jersey-Tracing-Threshold
-
Define o nível de tracing que a requisição terá. Pode assumir um dos seguintes valores:
SUMMARY
- Reduz a quantidade de informações no tracing.
TRACE
(valor padrão)- Quantidade padrão de informações de tracing.
VERBOSE
- Aumenta a quantidade de informações de tracing.
Como exemplo, vejamos a seguinte requisição: curl -X POST -v -H "X-Jersey-Tracing-Accept: 1" "http://meuservidor/lumis/api/rest/lumlogin?username=admin"
.
Essa requisição adiciona o cabeçalho X-Jersey-Tracing-Accept
para habilitar o tracing. Essa requisição
produz na resposta cabeçalhos indicando as informações de tracing:
Além disso, essas informações de rastreamento são logadas no arquivo lumisdata/log/lumis/rest-troubleshooting/lumis-rest-troubleshooting.log
.
Agora, vejamos a seguinte requisição: curl -X POST -v -H "X-Jersey-Tracing-Accept: 1" -H "X-Jersey-Tracing-Threshold: VERBOSE" "http://meuservidor/lumis/api/rest/lumlogin?username=admin"
.
Essa requisição adiciona, além do cabeçalho X-Jersey-Tracing-Accept
, o cabeçalho X-Jersey-Tracing-Threshold
com o valor VERBOSE
.
Esse cabeçalho faz com que o Jersey aumente as informações contidas no tracing.
Essa requisição produz na resposta cabeçalhos indicando as informações de tracing (além dessas informações estarem presentes no log, também):
Saída dos logs
Uma vez que os dois passos tenham sido feitos, pode-se verificar as entradas de log no arquivo lumisdata/log/lumis/rest/lumis-rest.log
.