Tại công ty của tôi, chúng tôi đang sử dụng Java Web Start để phân phối phần mềm ứng dụng khách cho khách hàng. Họ đang sử dụng các phiên bản Windows khác nhau: XP, Vista và 7.Java Web Start luôn lưu trữ tệp JNLP trên Windows XP
Chúng tôi đã triển khai phiên bản qua JWS với các sự cố tối thiểu trong quá khứ. Bản phát hành mới nhất của chúng tôi bao gồm một số thay đổi về tệp, một số lọ đã biến mất, một số khác đã xuất hiện, v.v.
Chúng tôi phát hiện ra rằng việc nâng cấp trên máy Windows XP không thành công vì JWS vẫn cố tra cứu các tệp jar không khả dụng trên web nữa máy chủ. Tôi đã kiểm tra nhật ký máy chủ HTTP của mình và tệp JNLP không bao giờ được truy cập từ các máy XP trong khi khởi động ứng dụng. Nếu tôi thử tương tự trên Vista hoặc Windows 7 mọi thứ hoạt động tốt, JWS tìm nạp bộ mô tả JNLP và tải xuống sự khác biệt khi có bản cập nhật. Vì vậy, trên các máy XP chỉ các tệp jar đã biết mới được cập nhật và JWS ném một lỗi nếu nó không tìm thấy thứ gì đó từ tệp bộ nhớ cache của JNLP.
Tôi đã viết một servlet tạo thủ công tệp JNLP. Tôi đang sử dụng cấu hình tiêu đề sau trong mã servlet của tôi.
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");
Điều này làm cho tệp JNLP luôn lỗi thời, điều này sẽ kích hoạt kiểm tra lại tệp mỗi khi khách hàng bắt đầu qua JWS. Tôi thậm chí có thể thấy ngày này trong trình xem bộ nhớ cache trên XP:
Tôi đã tìm thấy một vấn đề không bao giờ giải quyết về vấn đề này trên trang web về báo cáo lỗi của Oracle: Bug ID: 6189106 Chỉ cần thử nghiệm tương tự với Java7 trên Windows XP nhưng vấn đề này vẫn còn tồn tại. Nhưng chỉ trên XP vì các ký tự khoảng trắng trong đường dẫn của bộ nhớ cache triển khai ("Tài liệu và cài đặt" bạn biết). Ai đó nói rằng nếu tôi thay đổi đường dẫn của bộ nhớ cache triển khai thành một thứ không có ký tự khoảng trống, nó sẽ giải quyết vấn đề. Vâng, nó không phải là một giải pháp thực tế bởi vì người dùng khó có thể viết thư cho các địa điểm khác ngoài hồ sơ của họ.
Vì lỗi này tồn tại trong một thời gian dài nên tôi đoán có một số cách giải quyết khác. Tôi không muốn nói với khách hàng mọi lúc để xóa bộ đệm Java và cài đặt lại ứng dụng từ web. Chúng tôi muốn chuyển sang chu kỳ phát hành nhanh hơn trong tương lai, điều này sẽ làm cho điều này trở nên tồi tệ hơn. Tôi hy vọng ai đó có một ý tưởng tốt cho việc này. : |
Từ tùy chọn java trong ngăn điều khiển, bạn có thể bỏ chọn nhãn "giữ tệp tạm thời" không? – hurtledown
Anh ấy không muốn khách hàng gây rối với Bảng điều khiển –