fixes bug#20349

dev: alberto
qua: xxx

Correção realizada no momento que a limpeza de cache da api é acionada pelo adm.

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@103195 d1611594-4594-4d17-8e1d-87c2c4800839
master
lucassilverio 2020-09-04 18:41:51 +00:00
parent bdaa36c382
commit d4f6ce9ff7
1 changed files with 23 additions and 58 deletions

View File

@ -65,62 +65,14 @@ public class ItemMenuLimparCacheLocalidadesAPI extends DefaultItemMenuSistema {
}
url = url.concat("adm/limparCache");
String message = "Erro não identificado.";
try {
String message = "Solicitação de limpeza de cache executada com sucesso, o mesmo já está sendo processado pela API.";
HttpResponse response = httpRequestApi(url);
log.info("Response API limparCache: " + response);
message = obterMensagemResponse(response);
if(message.contains("em processamento.")) {
message = "A limpeza de cache se encontra em processamento.";
} else {
if (response.getStatusLine().getStatusCode() == 500) {
log.error("Ocorreu uma falha de comunicação com o endpoint da API de limpar cache, executando novamente o processo de cache");
response = httpRequestApi(url);
}
if (response.getStatusLine().getStatusCode() == 500) {
message = "Ocorreu uma falha de comunicação com o endpoint da API de limpar cache, favor executar novamente o processo de cache.";
log.error("Ocorreu uma falha de comunicação com o endpoint da API de limpar cache na 2º tentativa");
}
}
if (response.getStatusLine().getStatusCode() == 401) {
message = "Acesso negado";
} else if (response.getStatusLine().getStatusCode() == 200) {
message = obterMensagemResponse(response);
}
} catch (ClientProtocolException e) {
message = e.getMessage();
} catch (IOException e) {
message = e.getMessage();
} catch (AuthenticationException e) {
message = "Erro de autenticação";
} catch (JOSEException e) {
message = "Erro de autenticação";
}
log.info("LimparCacheLocalidadesAPI :: " + message);
try {
@SuppressWarnings("unchecked")
HashMap<String, String> map = new Gson().fromJson(message, HashMap.class);
if (map.containsKey("message")) {
message = map.get("message");
} else if (map.containsKey("mensagem")) {
message = map.get("mensagem");
}
httpRequestApi(url);
} catch (Exception e) {
log.error(e.toString());
log.error("Ocorreu um erro ao executar a requisição de limpar cache de localidade da API");
}
Clients.alert(message, org.zkoss.util.resource.Labels.getLabel("limparCacheLocalidadesAPI.title"), Messagebox.INFORMATION);
}
@ -139,12 +91,25 @@ public class ItemMenuLimparCacheLocalidadesAPI extends DefaultItemMenuSistema {
return result.toString();
}
private HttpResponse httpRequestApi(String url) throws JOSEException, AuthenticationException, IOException, ClientProtocolException {
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet(url);
UsernamePasswordCredentials creds = new UsernamePasswordCredentials("internal", getToken());
request.addHeader(new BasicScheme().authenticate(creds, request));
return client.execute(request);
private void httpRequestApi(final String url) {
new Thread(new Runnable() {
@Override
public void run() {
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet(url);
UsernamePasswordCredentials creds = null;
try {
creds = new UsernamePasswordCredentials("internal", getToken());
request.addHeader(new BasicScheme().authenticate(creds, request));
client.execute(request);
} catch (Exception e) {
log.error("Ocorreu um erro ao executar a requisição de limpar cache de localidade da API");
}
}
}).start();
}
private String getURLAPI() {