En mi empresa utilizamos Java Web Start para distribuir software cliente a los clientes. Están usando diferentes versiones de Windows: XP, Vista y 7.Java Web Start siempre almacena en caché el archivo JNLP en Windows XP
Implementamos una versión a través de JWS con problemas mínimos en el pasado. Nuestra última versión incluye varios cambios de archivos, algunos archivos se han ido, otros han aparecido, etc.
Descubrimos que la actualización en máquinas con Windows XP falla porque JWS aún intenta buscar archivos jar que ya no están disponibles en la web servidor. Revisé el registro de mi servidor HTTP y nunca se accede al archivo JNLP desde las máquinas con XP durante el inicio de la aplicación. Si intento lo mismo en Vista o Windows 7 todo funciona bien, JWS busca el descriptor JNLP y descarga las diferencias cuando hay una actualización disponible. Por lo tanto, en las máquinas XP solo se actualizan los archivos jar conocidos y JWS arroja un error si no encuentra algo del conjunto de archivos de JNLP en caché.
He escrito un servlet que genera manualmente el archivo JNLP. Estoy usando la siguiente configuración de encabezado en mi código de servlet.
response.setDateHeader("Last-Modified", lastModification);
// IE won't download JNLP file if Cache-Control header presents
//response.setHeader("Cache-Control", "no-cache, must-revalidate");
response.setHeader("Expires", "Mon, 26 Jul 1990 05:00:00 GMT");
Esto hace que el archivo JNLP siempre obsoleta que debe desencadenar? Servicios del archivo cada vez que el cliente se inicia a través JWS. Incluso puedo ver a esta fecha en el visor de caché en XP:
He encontrado un problema nunca resolver sobre esto en el sitio informe de error de Oracle: Bug ID: 6189106 acabo de probar lo mismo con Java7 en Windows XP, pero este problema todavía existe. Pero solo en XP debido a los caracteres de espacio en blanco en la ruta de la memoria caché de implementación ("Documentos y configuraciones"). Alguien dice que si cambio la ruta de la memoria caché de implementación a algo que no tenga caracteres de espacio, se solucionará el problema. Bueno, no es una solución real porque los usuarios casi nunca pueden escribir en ubicaciones que no sean su perfil.
Debido a que existe este error durante tanto tiempo, creo que debería haber algún tipo de solución. No me gusta decirle al cliente cada vez que borre la memoria caché de Java y vuelva a instalar la aplicación desde la web. Nos gusta pasar a un ciclo de lanzamiento más rápido en el futuro que hará que esto sea aún peor. Espero que alguien tenga una buena idea para esto. : |
Desde las opciones de Java en el panel de control, ¿no puede desmarcar la etiqueta "guardar el archivo temporal"? – hurtledown
No quiere que el cliente se meta con el Panel de control –