fixes bug#22366
dev:lucas qua: git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@108345 d1611594-4594-4d17-8e1d-87c2c4800839master
parent
09327529ea
commit
73137d75bf
|
@ -14,6 +14,7 @@ import org.apache.http.impl.auth.BasicScheme;
|
|||
import org.apache.http.impl.client.DefaultHttpClient;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.zkoss.util.resource.Labels;
|
||||
import org.zkoss.zk.ui.util.Clients;
|
||||
import org.zkoss.zul.Messagebox;
|
||||
|
||||
|
@ -46,6 +47,14 @@ public class ItemMenuLimparCacheLocalidadesAPI extends DefaultItemMenuSistema {
|
|||
@Override
|
||||
public void ejecutar() {
|
||||
|
||||
try {
|
||||
|
||||
int resp = Messagebox.show(
|
||||
Labels.getLabel("limparCacheLocalidadesAPI.message.pergunta"),
|
||||
Labels.getLabel("limparCacheLocalidadesAPI.title"), Messagebox.YES | Messagebox.NO, Messagebox.QUESTION);
|
||||
|
||||
if (resp == Messagebox.YES) {
|
||||
|
||||
String[] urls = getURLSAPI();
|
||||
|
||||
if (urls == null || urls.length == 0) {
|
||||
|
@ -66,12 +75,25 @@ public class ItemMenuLimparCacheLocalidadesAPI extends DefaultItemMenuSistema {
|
|||
if (tenant != null) {
|
||||
url = url.replaceAll("\\[.*?\\]", "");
|
||||
}
|
||||
String urlOriginal = url;
|
||||
url = montarUrlRequest(url);
|
||||
httpRequestApi(url, tenant);
|
||||
|
||||
ThreadCache cache = new ThreadCache(url, tenant, urlOriginal);
|
||||
Thread thread = new Thread(cache);
|
||||
thread.start();
|
||||
thread.join();
|
||||
|
||||
Clients.alert(cache.getRetorno(), org.zkoss.util.resource.Labels.getLabel("limparCacheLocalidadesAPI.title"), Messagebox.INFORMATION);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
Clients.alert(e.getMessage(),
|
||||
org.zkoss.util.resource.Labels.getLabel("limparCacheLocalidadesAPI.title"), Messagebox.ERROR);
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
|
||||
String message = "Solicitação de limpeza de cache executada com sucesso, o mesmo já está sendo processado pela API.";
|
||||
Clients.alert(message, org.zkoss.util.resource.Labels.getLabel("limparCacheLocalidadesAPI.title"), Messagebox.INFORMATION);
|
||||
}
|
||||
|
||||
private String montarUrlRequest(String url) {
|
||||
|
@ -85,35 +107,6 @@ public class ItemMenuLimparCacheLocalidadesAPI extends DefaultItemMenuSistema {
|
|||
return url.concat("adm/limparCache");
|
||||
}
|
||||
|
||||
private void httpRequestApi(final String url, final String tenant) {
|
||||
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));
|
||||
|
||||
if (tenant != null) {
|
||||
request.addHeader("x-tenant-id", tenant);
|
||||
}
|
||||
|
||||
HttpResponse response = client.execute(request);
|
||||
if(response != null && response.getStatusLine() != null) {
|
||||
log.info(String.format(":: Response Status Code %d ::", response.getStatusLine().getStatusCode()));
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("Ocorreu um erro ao executar a requisição de limpar cache de localidade da API");
|
||||
}
|
||||
|
||||
}
|
||||
}).start();
|
||||
}
|
||||
|
||||
private String[] getURLSAPI() {
|
||||
ApplicationContext appContext = AppContext.getApplicationContext();
|
||||
ConstanteService constanteService = (ConstanteService) appContext.getBean("constanteService");
|
||||
|
@ -141,4 +134,85 @@ public class ItemMenuLimparCacheLocalidadesAPI extends DefaultItemMenuSistema {
|
|||
|
||||
return jwsObject.serialize();
|
||||
}
|
||||
|
||||
public class ThreadCache implements Runnable {
|
||||
|
||||
private final String url;
|
||||
private final String tenant;
|
||||
private String retorno;
|
||||
private String urlOriginal;
|
||||
|
||||
public String getUrl() {
|
||||
return url;
|
||||
}
|
||||
|
||||
public String getTenant() {
|
||||
return tenant;
|
||||
}
|
||||
|
||||
public String getRetorno() {
|
||||
return retorno;
|
||||
}
|
||||
|
||||
public void setRetorno(String retorno) {
|
||||
this.retorno = retorno;
|
||||
}
|
||||
|
||||
public String getUrlOriginal() {
|
||||
return urlOriginal;
|
||||
}
|
||||
|
||||
public void setUrlOriginal(String urlOriginal) {
|
||||
this.urlOriginal = urlOriginal;
|
||||
}
|
||||
|
||||
public ThreadCache(String url, String tenant, String urlOriginal) {
|
||||
this.url = url;
|
||||
this.tenant = tenant;
|
||||
this.urlOriginal = urlOriginal;
|
||||
}
|
||||
|
||||
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));
|
||||
|
||||
if (tenant != null) {
|
||||
request.addHeader("x-tenant-id", tenant);
|
||||
}
|
||||
|
||||
HttpResponse response = client.execute(request);
|
||||
if (response != null && response.getStatusLine() != null) {
|
||||
log.info(String.format(":: Response Status Code %d ::", response.getStatusLine().getStatusCode()));
|
||||
}
|
||||
|
||||
Integer codigoRetorno = (response != null && response.getStatusLine() != null) ? response.getStatusLine().getStatusCode() : null;
|
||||
|
||||
retorno = montarMensagemRetorno(tenant, urlOriginal, codigoRetorno, null);
|
||||
|
||||
} catch (Exception e) {
|
||||
retorno = montarMensagemRetorno(tenant, urlOriginal, null, e.getMessage());
|
||||
log.error("Ocorreu um erro ao executar a requisição de limpar cache de localidade da API", e);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private String montarMensagemRetorno(String tenant, String url, Integer codigoRetorno, String mensagemErro) {
|
||||
|
||||
StringBuilder mensagemRetorno = new StringBuilder();
|
||||
mensagemRetorno.append("ULR -> ").append(url).append("\n");
|
||||
mensagemRetorno.append("tenant -> ").append(tenant).append("\n");
|
||||
if (mensagemErro == null) {
|
||||
mensagemRetorno.append("Resposta -> ").append((codigoRetorno != null && codigoRetorno.equals(200)) ? "Solicitação de limpeza de cache executada com sucesso, código " + codigoRetorno : "Erro ao enviar solicitação, código " + codigoRetorno);
|
||||
} else {
|
||||
mensagemRetorno.append("Resposta -> ").append(mensagemErro);
|
||||
}
|
||||
|
||||
return mensagemRetorno.toString();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9083,6 +9083,7 @@ filtroTaxaEmbarqueW2i.labelAviso.value= Atenção. Certifique-se que todos os da
|
|||
indexController.mniLimparCacheLocalidadesAPI.label = Recarregar Cache de Localidades (API)
|
||||
limparCacheLocalidadesAPI.title = Localidades (API)
|
||||
limparCacheLocalidadesAPI.message.naoconfigurado=A constante de configuração da URL da API não foi encontrada.
|
||||
limparCacheLocalidadesAPI.message.pergunta=Deseja Recarregar Cache de Localidades (API) ? (API de Localidade ficará indisponível durante a execução)
|
||||
|
||||
#Relatório de Aproveitamento Financeiro
|
||||
relatorioAproveitamentoFinanceiroController.window.title = Relatório de Aproveitamento Financeiro
|
||||
|
|
|
@ -9819,6 +9819,7 @@ filtroTaxaEmbarqueW2i.labelAviso.value= Atenção. Certifique-se que todos os da
|
|||
indexController.mniLimparCacheLocalidadesAPI.label = Recarregar Cache de Localidades (API)
|
||||
limparCacheLocalidadesAPI.title = Localidades (API)
|
||||
limparCacheLocalidadesAPI.message.naoconfigurado=A constante de configuração da URL da API não foi encontrada.
|
||||
limparCacheLocalidadesAPI.message.pergunta=Deseja recarregar Cache de Localidades (API) ? (API de Localidade ficará indisponível durante a execução)
|
||||
|
||||
#Relatório de Aproveitamento Financeiro
|
||||
relatorioAproveitamentoFinanceiroController.window.title = Relatório de Aproveitamento Financeiro
|
||||
|
|
Loading…
Reference in New Issue