Olá pessoal,
Temos uma aplicação swing que gera cotações em formato html, e são publicadas em nosso web-server (Tomcat 6.0.16), o qual tb roda sistemas jsp e jsf. Pois bem, estou com o seguinte problema. O Usuário formata uma cotação e pede para o sistema swing gerar o html (até aí perfeito, o html está ok), porém se o usuário fizer qualquer alteração na cotação do sistema swing o html não é atualziado, somente se atualiza quando o tomcat é reiniciado.
Tomei as seguintes ações:
Configurei os header http de cache:
<% Response.CacheControl = “no-cache” %>
<% Response.AddHeader “Pragma”, “no-cache” %>
<% Response.Expires = -1 %>
Porém não funcionou, o pior é que o problema é intermitente, chega a ficar de 3 a 4 dias se comportando normalmente de o problema volta a acontecer.
Estou desconfiando que seja o proxy da empresa.
Alguém já passou por isso, tem alguma dica ???
Obrigado.
Cara essa e uma anomalia bem estranha. Passei por um problema bem parecido com um sistema e a solução foi similar a sua. No meu caso montei um PhaseListener e deixei ele fazer todo o resto.
public class CacheControlPhaseListener implements PhaseListener {
private static final long serialVersionUID = 951206362860324930L;
public PhaseId getPhaseId() {
return PhaseId.RENDER_RESPONSE;
}
public void afterPhase(PhaseEvent event) {}
public void beforePhase(PhaseEvent event) {
FacesContext facesContext = event.getFacesContext();
HttpServletResponse response = (HttpServletResponse) facesContext.getExternalContext().getResponse();
response.setHeader("Pragma", "No-Cache");
response.setHeader("Cache-Control", "no-cache,");
response.setHeader("Cache-Control", "no-store");
response.setHeader("Cache-Control", "private");
response.setHeader("Cache-Control", "must-revalidate");
response.setHeader("Cache-Control", "max-stale=0");
response.setHeader("Cache-Control", "max-age=0");
response.setDateHeader("Expires", 1);
}
}
Espero que ajude.
att,