O miniaplicativo Java é armazenado em cache para sempre, sem baixar a nova versão?

StackOverflow https://stackoverflow.com/questions/66875

  •  09-06-2019
  •  | 
  •  

Pergunta

Temos um caso em que os clientes parecem armazenar versões de miniaplicativos em cache eternamente.Estamos fazendo uso do <param name="cache_version"> tag corretamente dentro do nosso <object> tag, ou assim pensamos.Partimos de uma string de versão de 7.1.0.40 para 7.1.0.42 e isso desencadeou um download para apenas metade dos nossos clientes.

Não parece importar qual versão do JRE o cliente está executando.Vimos pessoas com esse problema em 1.4, 1.5 e 1.6.

Alguém tem experiência com versões de cache explícitas?Funciona de forma mais confiável (ignorando a velocidade) em vez disso, confiar no cache_archiveOs valores "Última modificação" e/ou "Comprimento do conteúdo" (conforme Site da Sun)?

Para sua informação, o bloco de objetos se parece com isto:

<object>
  <param name="ARCHIVE" value="foo.jar">
  <param name="CODE" value="com.foo.class">
  <param name="CODEBASE" value=".">
  <param name="cache_archive" value="foo.jar">
  <param name="cache_version" value="7.1.0.40">
  <param name="NAME" value="FooApplet">
  <param name="type" value="application/x-java-applet;jpi-version=1.4.2_13">
  <param name="scriptable" value="true">
  <param name="progressbar" value="true"/>
  <param name="boxmessage" value="Loading Web Worksheet Applet..."/>
</object>
Foi útil?

Solução

Infelizmente, diferentes versões do Java Plug-In têm diferentes comportamentos de cache.Definir os cabeçalhos Cache-Control e Last-Modified HTTP é a solução ideal, mas só funciona sob as versões mais recentes do JRE.

A única solução GARANTIDA para funcionar é renomear os jars do seu aplicativo quando suas versões mudam (vimos um comportamento estranho de cache ao tentar outros truques, como adicionar strings de consulta com base nas datas dos arquivos).Isso não é tão difícil de fazer se você tiver um sistema de implantação devidamente automatizado.

Outras dicas

Você pode remover o miniaplicativo do cache Java usando Java Control Panel.
Por exemplo, no Win XP

Start -> Control Panel -> Java -> Temporary Internet Files[View]

Conforme esse link , o mesmo arquivo jar não deve ser listado nos parâmetros "archive" e "cache_archive".Nesse caso, o arquivo JAR é armazenado em cache usando o cache nativo do navegador.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top