JSF 2.1.7 + Prime Faces + Prime Faces Mobile を使用しています。
画像を参照するページがあります:
<img src="/charts/chart1.png"/>
chart1.png を 2 分ごとに更新するために実行される別のバックグラウンド プロセスがあります。(特定のオンライン URL から画像を取得します)。画像を保存するために使用するコードは次のとおりです。
public static String saveImage(final String strurl, final String imageFileName){
//assume the url for the image is valid
try {
URL url = new URL(strurl);
HttpURLConnection conn = (HttpURLConnection )url.openConnection();
conn.setConnectTimeout(1000); //1 sec timeout
conn.connect();
File file = new File(imageFileName);
BufferedImage image = ImageIO.read(conn.getInputStream());
ImageIO.write(image, "png", file);
return file.getAbsolutePath();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
ImageIO.write は、既存のイメージ ファイルを削除し、新しいイメージ ファイルを書き出します。上記の結果、画像ファイルが利用できない数ミリ秒になるため、Web ユーザーは画像を見ることができなくなると思います。
私の質問は次のとおりです。
1) 画像が一時的に利用できない時間があるというのは本当ですか?
2) その場合、これを修正して、ユーザーが常に利用可能な画像を利用できるようにするための可能な解決策は何ですか?
前もって感謝します。=)