Jsf 2 + webcam

olá senhores.

estou implementando um cadastro de clientes onde é necessário inserir uma foto do mesmo.

para quebrar um galho estou utilizando o file upload do primefaces, mas dessa maneira o usuario precisa acessar o programa da webcam, tirar uma foto, salvar, ir para o sistema e fazer o upload da foto, tornando-se um processo cansativo e deixando-o com uma usabilidade não muito boa. gostaria de fazer com que o usuario pudesse tirar essa foto através do nosso sistema, direto da página web.

sei que existe um plugin (jquery-webcam), mas não sei como integrar ele com o JSF.

alguém contribui??

grato.

e ai descobriu alguma coisa?

Uma pagina web funciona com base em HTML, JS e CSS. E dentro deles não é permitido manipular nada na maquina do usuário final.
Todos as soluções web (HTIN-CLIENT) que precisa fazer alguma coisa de FAT-CLIENT mandam uma pequena applet java que é um programa desktop devidamente assinado que pode então ser executada embutidamente dentro da pagina e ter acesso os recursos da maquina do usuário. Muitos sistema usam isso para acessar impressoras, dispositivos biométricos, impressoras de cheques etc. Eu acredito que o caso do seu cenário.

Então estou tentando fazer com flash e jquery, acho que ficara melhor e mais moderno. Fiz a camera funcionar mas ainda não consegui gravar a imagem via java achei alguns codigos que fazem isso de maneira facil com php, mas ainda não consegui converter em java se alguem puder ajudar agradeço.

fabio_ajm, Poste seu código, como você fez para chamar a web cam?

Para salvar a imagem, você armazena e converte em bytes e salva como blob no banco, veja este tópico:
http://javafree.uol.com.br/topic-880026-Pegar-imagem-de-um-label-e-converter-e-bytes.html

Estou tentando implementar essa função em uma solução de cadastro que estou fazendo, se for possível mostrar como chamou a wabcam…

Valeu!

estou postando os fontes, se obter qualquer progresso posta ai.

o fonte .xhtml

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:ui="http://java.sun.com/jsf/facelets">
<head>
<script type="text/javascript"
	src="#{facesContext.externalContext.requestContextPath}/js/jquery.min.js"></script>
	
	<script type="text/javascript"
	src="#{facesContext.externalContext.requestContextPath}/js/jquery.webcam.js"></script>
<script type="text/javascript" language="JavaScript">
		
		$(function() {
			$('#webcam').createWebCam();
			$('#capture').click(function() {								
				 $('#webcam').getWebCam().capture(function(json){
					if(json.type=="success") {
						console.log('URL: '+json.msg);
					} else if(json.type == "error") {
						console.log('ERROR: '+json.msg);
					}
				});
			});
			$('#reset').click(function() {
				 $('#webcam').getWebCam().reset();
			});
			$('#configure').click(function() {
				 $('#webcam').getWebCam().configure();
			});
		});
	</script>
	
</head>
<body>
	<div id="webcam"></div>
	<a id="capture">Snapshot</a>
	<a id="reset">Reset</a>
	<a id="configure">Configure</a>
</body>
</html>


A servlet:


import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.Reader;
import java.io.Writer;

import javax.servlet.ServletException;
import javax.servlet.ServletInputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;



/**
 * Servlet implementation class Teste
 */
public class Teste extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Teste() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doPost(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		InputStream stream = request.getInputStream();
		InputStreamReader reader= new InputStreamReader(stream);
		Reader in = new BufferedReader(reader);
		StringBuffer buffer = new StringBuffer();
		int ch;
		while ((ch = in.read()) > -1) {
			buffer.append((char)ch);
		}
		in.close();
		//agora precisa transformar o stream em imagem		
		}
	}

}