Recapitulando...
- Se tienen únicamente 3 clases en el proyecto: la clase ejemplolectorhuellas.Main, interfaz.PantallaPrincipal y procedimientos.Util, donde Main es a través de la cual se arranca el programa, PantallaPrincipal es la interfaz y Util es la clase que contiene los procedimientos.
- Al realizar todos los procedimientos de la parte 2 del tutorial y ejecutar el programa se debe de enceder el lector de huellas, al colocar el dedo sobre el lector debe de aparecer la imagen de la huella capturada.
¿Hasta aquí todo bien? Si tu respuesta es afirmativa continúa con los siguientes pasos, de lo contrario regresa a las partes anteriores y verifíca que no tengas errores en la codificación.
Agregar los objetos para las consultas en procedimientos.Util::
Abrimos la clase procedimientos.Util y agregamos al inicio de la misma los siguientes objetos:
- No es seguro tener la imagen de una huella capturada.
- Una imagen ocupa muchísimo más espacio en la base de datos, si se plantea utilizar para corroborar una considerable cantidad de huellas el proceso se vuelve inoperable.
- No es necesario tener la imagen de la huella para compararla con otra, basta con la plantilla que se extraerá.
****Actualización (08/08/2012)****
A petición de todos les dejo la lista de todos los artículos de este tutorial.
- Parte 1: http://monillo007.blogspot.com/2008/08/programacin-de-un-lector-de-huella.html
- Parte 2: http://monillo007.blogspot.com/2008/08/programacin-de-un-lector-de-huella_20.html
- Parte 3: http://monillo007.blogspot.com/2008/09/programacin-de-un-lector-de-huella.html
- Parte 4: http://monillo007.blogspot.com/2008/09/programacin-de-un-lector-de-huella_03.html
- Parte 5: http://monillo007.blogspot.com/2008/10/programacin-de-un-lector-de-huella.html
buenas tades, me ha funcionado hasta donde me pide el nombre de la plantilla extraida de la huella, pero no me guarda nada en la base de datos...estoy usando xampp..agradeceria mucho la yuda
ResponderBorrarke tal yo de nuevo, ya corre bien solo que el guardar la huella genera una exception de q es un desbordamiento me imagino q es el tmanño del buffer no no se a ke se deba aki te pongo el error espero me puedas a yudar gracias.
ResponderBorrarEsta es la exception q me arroja:
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 2
at com.mysql.jdbc.PreparedStatement.setBinaryStream(PreparedStatement.java:2776)
Qué tal,
ResponderBorrarEl error que te aparece es por que estás utilizando un arreglo y en algún momento estás tratando de acceder a una posición que está fuera del rango del mismo, es decir, si tu arreglo tiene un tamaño de 2 e intentas acceder a la posición 3, te va a dar esta excepcion.
Saludox.
Buenas noches, una pregunta
ResponderBorrarPorqué donde haces el INSERT
"INSERT INTO somhue(id, huenombre, huehuella) values(?,?,?)"
escribes en values los signos de interrogación???
oO
Gracias =D
HOLA BUENAS TARDES TENGO UN PROBLEMA AL HORA DE GUARDAR LA HUELLA ME MANDA UN ERROR
ResponderBorrarjava.sql.SQLException: Incorrect integer value: 'default' for column 'id' at row 1
Y YA ESTAD RE VISANDO TODO Y NO SE POR QUE ME MARKA ESTO NO SE SI TENGA ALGO QUE VER KON LO DE LOS VALUES (?,?,?)
AGRADECERIA ME CONTESTARAS
me funciono muy bien gracias por lo detallado del codigo
ResponderBorrarCordial saludo...
ResponderBorraral ejecutar el programa luego de haber terminado la parte 2 este me ejecuta sin errores pero no me captura la huella o por lo menos no me la muestra.
ademas mi lector de huella siempre esta encendido... asi el programa no se este ejecutando...
disculpa que te moleste pero podrias publicar el link para descargar el paquete de la huella digital en java
ResponderBorrarHola, oye disculpa todo me funciona bien, pero al guardar en la base de datos no me guarda nada. Estoy utilizando xampp, agradecería mucho que me ayudaras
ResponderBorrarQué tal,
ResponderBorrarTe aparece algún mensaje de error? Recuerda que el id de la tabla debe ser autoincrementable...
Saludox
Hola Luis,
ResponderBorrarMe interese bastante en su articulo para la programación en Netbeans de un lector de huellas con motor de bases MySQL y he tratado de implementarlo, pero he topado con un error que aún no podido descifrar y sería de mucha ayuda su opinión.
El error es básicamente este:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at procedimientos.Util.guardarHuella(Util.java:203)
esta linea es la:
guardarStmt.setString(1,"default");
en donde voy agregando los valores para luego realizar el INSERT!, algo pasa con el atributo :
private PreparedStatement guardarStmt;
Espero que pueda colaborarme pues estoy sumamente interesado en el desarrollo completo de la aplicación.
De antemano muchas gracias y si es posible estaremos en contacto...
Nicolas Gutiérrez G.
Hola Morillo,
ResponderBorrarfelicitaciones por el tutorial.
me llamo JuanPablo, estuve probando paso a paso tu aplicacion,yo utlizo netbeans 7.0.1 con dispositivo secugen hamster plus y el Fingerprint SDK 2009(compre la licencia), me va bien, corre le programa, ingreso y veo la huella digital pero cuando quiero guardar la imagen me arroja este error:
init:
Deleting: C:\Users\PABLO\Documents\EjemploLectorHuellas\build\built-jar.properties
deps-jar:
Updating property file: C:\Users\PABLO\Documents\EjemploLectorHuellas\build\built-jar.properties
compile:
run:
Error al guardar los datos de la huella.
java.sql.SQLException: Incorrect integer value: 'default' for column 'id' at row 1
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1075)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3566)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3498)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1959)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2113)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2568)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2113)
at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:1364)
.
.
.
Estuve leyendo post de usuarios pasados, y pensaba que tambien era algun error por bases de datos como, activar el autoincrement. probe tambien agregando campos en 'duro' a la base de datos. pero no me ha dado resultado . Tengo dias con esto y quisisera pidirte tu apoyo. porsiacso te dejo mi correo jpablo.sg@hotmail.com
saludos y exitos
Qué tal Juan Pablo,
ResponderBorrarIntenta cambiar la línea guardarStmt.setString(1,"default"); por guardarStmt.setInt(1,1); para verificar que no haya problemas en la sentencia sql, de igual manera te recomiendo que descargues el proyecto terminado para que lo pruebes y me comentes si te sucede lo mismo. La liga para descargarlo puedes encontrarla en la parte 5 del tutorial.
Saludos.
Hola Morillo,
ResponderBorrargracias por responder
realize lo que me dijistes y si me llego a funcionar. gracias!
Pero ahora me e visto en la tarea de poder ejecutarlo por web. entonces para esto se me ocurrio 2 ideas: crear un jar. ejecutable y crear un servlet( java o php) que invoque al jar. y luego me retorne los bytes de la imagen para dibujarlo, pero como no se mucho manejo de servlet(java) lo deje de lado y opte por crear un applet(tambien soy novato en applet, lei que sugieren en post anteriores) pero si es cierto que el ejemplo sirve de guia para hacer uno en applet, son casos diferentes por ejemplo el JFrame tiene el evento formWindowActivated cosa que el JApplet no existe. otro caso es que en tu ejemplo tienes un main donde invocas el constructor del JFrame y luego llamas a una funcion inicializar().... pero en JApplet no existe un main solo he visto que hay un metodo 'run'.
a pesar de estas dudas me aventure a crear el proyecto del applet y me arrojo este error.
run:
Exception in thread "Thread-5" java.lang.UnsupportedOperationException: Not supported yet.
at procedimientos.Util.onFingerUp(Util.java:94)
at com.griaule.grfingerjava.GrFingerJavaNative.callbackFinger(GrFingerJavaNative.java:180)
espero me puedas dar una mano con este tema.
Juan Pablo
Qué tal,
ResponderBorrarVerifica que en la línea 94 de Util.java no estés mandando manualmente la excepción.
Saludos.
Oye amigo, gracias por el tutorial, es de mucha ayuda, mi duda es que cuando corro mi programa no me muestra la captura de la huella, como en el tutorial 2, me dici que se ha producido un error y me cierra el programa, falta archivo:
ResponderBorrarystem.IO.FileNotFoundException: Could not load file or assembly 'GriauleFingerprintLibrary, Version=1.1.0.2, Culture=neutral, PublicKeyToken=0cd8a94f71f97144' or one of its dependencies. El sistema no puede hallar el archivo especificado.
File name: 'GriauleFingerprintLibrary, Version=1.1.0.2, Culture=neutral, PublicKeyToken=0cd8a94f71f97144'
Qué tal,
ResponderBorrar¿Qué versión del SDK estás utilizando?
Fingerprint SDK Java 2009, el de la version trial
ResponderBorrarTe recomiendo utilizar el que se indica en este tutorial que es la versión 2007, puedes descargarlo desde aquí:
ResponderBorrarhttp://min.us/mvfrHo#1o
Saludos.
Hola que tal.
ResponderBorraren esta parte se queda asi o hay que agregar un directorio????
String grFingerNativeDirectory = new File(".").getAbsolutePath(; Util.setFingerprintSDKNativeDirectory(grFingerNativeDirectory);
y no me esta reconociendo las capturas de la huellas...
Saludos..
Qué tal,
ResponderBorrarLa línea va así como la indicas (terminando en ();), te aparece algún error al momento de capturar la huella?
¿Qué versión del SDK y modelo de lector estás utilizando?
La FingerPrint SDK 2007 y el lector es digitalpersona u 4500, de igual forma corro los ejemplos del SDK y no me reconoce las capturas de lahuella, ademas tengo los .dll en system32 y no se que esta pasando.
ResponderBorrarEntiendo,
ResponderBorrarEste SDK tiene problemas en ocasiones con ese modelo de lector, me parece que el compatible sería el SDK 2009, sin embargo, el código del tutorial no se adapta completamente a esta última versión por lo que tienes 2 opciones:
1) Utilizar un lector compatible con el SDK 2007
2) Ajustar el código del SDK 2009 para que realice las funciones
Pronto publicaré un tutorial para la versión 2009, de momento, tus opciones son las anteriores. Saludos.
Hola buenos dias.
ResponderBorrartemgo el siguiente problema con mi aplicacion,
mi problema es en el momento de estraer el template de la huella para guardarlo, me sale la siguiente excepcion:
Exception in thread "Thread-4" java.lang.UnsatisfiedLinkError: com.griaule.grfingerjava.GrFingerJavaNative.GrExtract([BIII[B[III)I
at com.griaule.grfingerjava.GrFingerJavaNative.GrExtract(Native Method)
at com.griaule.grfingerjava.MatchingContext.extract(MatchingContext.java:196)
at com.griaule.grfingerjava.MatchingContext.extract(MatchingContext.java:171)
at com.griaule.fingerprintsdk.sample.Util.extract(Util.java:601)
at com.griaule.fingerprintsdk.sample.Util.onImageAcquired(Util.java:194)
at com.griaule.grfingerjava.GrFingerJavaNative.callbackImage(GrFingerJavaNative.java:157)
espero que me puedas ayudar....
Qué tal,
ResponderBorrarVerifica que todos los dll's se encuentren en el directorio correcto (lee nuevamente la parte 1 del tutorial para ver la configuración).
Si el problema sigue ayudaría que me indicaras qué sistema operativo tienes, qué versión del SDK estás utilizando y cuál es el modelo del lector.
Saludos.
ya reconoce el lector, pero no prende, no se activa. asi no puedo realizar capturas....
ResponderBorrarQué tal,
ResponderBorrar- ¿Qué sistema operativo tienes?
- ¿Qué versión del SDK estás utilizando?
- ¿Qué modelo de lector utilizas?
Saludos.
SO XP, FingerPrint SDK 2009 y el lector es digitalPersona u4500, anteriormente si funcionaba el ejemplo del SDK, captura y muestra todo bien, pero al reiniciar mi pc ya no prendio el lector.
ResponderBorrarQué tal,
ResponderBorrarTe comento que el tutorial está orientado al SDK 2007, en este caso no tengo las bases para tratar de identificar la raíz de tu problema dado que utilizas el 2009, te recomiendo que te des una vuelta por la página de soporte de Griaule y verifiques si hay soluciones a problemas como el que presenta tu app.
Lamento no poder ayudarte más allá. Saludos.
Hola Luis me encuentro trabajando e la aplicacion de huella con java 6.9.1
ResponderBorrary SDK 2007 Windows XP y 7 y al ejecutar el formulario me envia el siguiente error y ya revise hice los pasos como se indican te agradezco en lo que me puedas colaborar el lector es Marca Microsoft.
Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: com.griaule.grfingerjava.GrFingerJavaNative.GrInitialize()I
at com.griaule.grfingerjava.GrFingerJavaNative.GrInitialize(Native Method)
at com.griaule.grfingerjava.MatchingContext.createContext(MatchingContext.java:58)
at com.griaule.grfingerjava.MatchingContext.(MatchingContext.java:103)
at procedimientos.Util.inicializarCaptura(Util.java:131)
at interfaz.PantallaPrincipal.(PantallaPrincipal.java:50)
at interfaz.Menu.jMenuItem1ActionPerformed(Menu.java:131)
at interfaz.Menu.access$000(Menu.java:20)
at interfaz.Menu$1.actionPerformed(Menu.java:53)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.AbstractButton.doClick(AbstractButton.java:357)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:809)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:850)
at java.awt.Component.processMouseEvent(Component.java:6289)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6054)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4652)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4482)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4482)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:644)
at java.awt.EventQueue.access$000(EventQueue.java:85)
at java.awt.EventQueue$1.run(EventQueue.java:603)
at java.awt.EventQueue$1.run(EventQueue.java:601)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$2.run(EventQueue.java:617)
at java.awt.EventQueue$2.run(EventQueue.java:615)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:614)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Qué tal,
ResponderBorrarAl parecer es un problema con las dll's, verifica que lo indicado en la parte 1 del tutorial esté realizado al 100%.
Saludos.
Hola Luis me podrias indicar si el SDK 2007 es compatible con este lector Huellero marca Futronic, modelo F580
ResponderBorrarGracias
Gracias Luis ya consegui la compatibilidad de lectores con SDK 2007 mando el link quizas sea util a alguien
ResponderBorrarhttp://www.biometriaaplicada.com/Griaule-pdf/Fingerprint-SDK.pdf
SOLUCIÓN AL SIGUIENTE ERROR: java.sql.SQLException: Incorrect integer value: 'default' for column 'id' at row 1
ResponderBorrarHACER LO SIGUIENTE:
1.- CAMBIAR LA LINEA guardarStmt.setString(1,"default"); POR guardarStmt.setInt(1,0);
LISTO!! YA TE DEBE FUNCIONAR.
...ahh olvidaba mencionar en el anterior comentario que el campo id de la tabla del proyecto debe ser int not null auto_increment
ResponderBorrarEstimado, por favor ayudenos publicando nuevamente la libreria de FingerPrint SDK 2007 pues el link que usted publica no permite descargar el archivo nos sera de gran ayuda para todos.
ResponderBorrar