【发布时间】:2014-09-03 06:13:46
【问题描述】:
我编写了一个从网络摄像头拍摄照片的 bean。我想在 JSF 2.0 页面中显示这些图像并每隔 n 秒更新一次。
如果我像这样在 Eclipse 中为文件提供路径名,它可以工作:
public String getNewPhoto() {
try {
File dir = new File("C:/Users/User/MyApp/images/");
FileUtils.cleanDirectory(dir);
}catch(Exception ex) {
ex.printStackTrace();
}
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime());
try {
webcam = Webcam.getDefault();
webcam.open();
ImageIO.write(webcam.getImage(), "PNG", new File("C:/Users/User/MyApp/images/"+ timeStamp + ".png"));
webcam.close();
}catch(Exception ex) {
ex.printStackTrace();
}
return "C:/Users/User/MyApp/images/" + timeStamp + ".png";
}
使用以下 XHTML:
<p:graphicImage value="#{myBean.newPhoto}" id="photo" cache="false" />
<p:poll interval="1" listener="#{myBean.increment}" update="photo" />
正如预期的那样,在我的 Eclipse 开发环境中,上述所有操作都可以正常工作。我想将此部署到我的服务器(Linux)。当我将您在上面看到的路径更改为
/var/lib/tomcat7/webapps/MyApp/images
然后图像被保存,但我无法在 h:graphicImage 中显示它们。我也尝试过:
http://hostname:8080/MyApp/images/....
到 h:graphicImage 仍然没有骰子,我确定我错过了一些真正简单的东西。任何帮助表示赞赏!
【问题讨论】: