En este tutorial vamos a mostrar la forma en que sera utilizado el servicio web que hemos creado en java (antes de este post), la idea es de utilizar todas las funciones que existen para gestionar la informacion de la base de datos. La aplicacion a elaborar tendra la siguiente apariencia:
Para comenzar, creemos un nuevo Proyecto de Vb.net, y debemos agregar los siguientes controles:
* 4 textbox
* 4 botones
* 1 combobox
* 1 progressbar
* Varios Label para indicar el nombre de los campos y 2 picturebox para personalizar nuestro formulario con imagenes a su gusto.
El diseño en vb sera similar al que se ve a continuacion:
Luego procedemos a agregar la referencia al servicio web, para ello escogemos la opcion proyecto de la barra de menu, y en la lista desplegable escogemos la opcion Agregar referencia web, si no aparece dicha opcion, seleccionamos la que dice agregar referencia de servicio, como podemos ver:
Luego, aparecera una nueva ventana, alli marcamos la opcion avanzadas como podemos oservar en la imagen que sigue:
Posteriormente, se abrira otra nueva ventana, alli hacemos clic sobre el boton Agregar referencia web:
Bien, en la ventana que aparecerá copiamos la WSDL del Servicio Web que corresponde la la url que lo identifica (puedes revisarla en el post anterior), la colocas donde dice direccion URL y presionasl el Boton Ir
Automaticamente se comienza a explorar el webservice y a listar todos los metodos o funciones que posee, tal y como se observa a continuacion:
Luego le colocamos el nombre de referencia web a nuestro servicio, el cual llamaremos: referenciaws y presionamos el boton agregar referencia.
Listo, una vez agregada la referencia se puede observar en el explorador de soluciones la estructura de nuestro web service, podemos pasar ahora a codificar en cada elemento de nuestro formulario.
Primero, importamos la referencia al servicio web:
Imports Consumiendo_WebService.referenciaws
Luego, en el evento load del formulario desactivamos los errores por subproceso para evitar que en el transcurso de la aplicacion se generen inconsistencias durante el intercambio de datos con el servicio web, el codigo es el siguiente:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load CheckForIllegalCrossThreadCalls = False End Sub
Luego creamos el procedimiento para insertar al usuario y el cual interactuara con el que se ha creado en el webservice de java.
Sub GuardarUsuario() 'Crea la referencia al web service de java Dim jws As New referenciaws.proceso_wcService Dim ced As String = Me.Text_cedula.Text Dim nombre As String = Me.Text_nombre.Text Dim apellido As String = Me.Text_apellido.Text Dim direccion As String = Me.Text_direccion.Text Dim se As String = Me.Combo_sexo.SelectedItem 'Llama al metodo insertarUsuario del web service que esta en java 'Si devuelve verdadero es porque se inserto ese dato Dim funciono As Boolean = jws.insertarUsuario(ced, nombre, apellido, direccion, se) ' MsgBox(funciono) If funciono Then MsgBox("El usuario ha sido registrado Correctamente!", MsgBoxStyle.Information, "Notificacion") Else MsgBox("El usuario No ha sido registrado, Verifique!", MsgBoxStyle.Exclamation, "Notificacion") End If End Sub
ahora, llamamos a dicha funcion dentro del boton guardar, tal y como podemos ver:
Private Sub Button_guardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_guardar.Click Try GuardarUsuario() Catch ex As Exception MsgBox("Ha ocurrido un error para Conectarse al WebService!", MsgBoxStyle.Critical, "Advertencia") End Try End Sub
Bien, ahora vamos a crear el procedimiento buscar_usuario, mediante el cual se realizara la busqueda de informacion en la base de datos:
Sub buscar_usuario() 'Crea la referencia al web service de java Dim jws As New referenciaws.proceso_wcService Dim ced As String = CInt(Me.Text_cedula.Text.Trim) 'Llama al metodo buscarUsuarioCedula del web service que esta en java 'Si devuelve verdadero es porque se encontro ese dato Dim funciono As Boolean = jws.buscarUsuarioCedula(ced) If funciono = True Then 'Establece los valores a los controles del formulario Me.Text_nombre.Text = CStr(jws.MostrarNombre) Me.Text_apellido.Text = CStr(jws.MostrarApellido) Me.Text_direccion.Text = CStr(jws.MostrarDireccion) Me.Combo_sexo.Text = CStr(jws.MostrarSexo) Else MsgBox("No se ha encontrado Ningun Usuario Con la Cedula que usted ha ingresado, Verifique!", MsgBoxStyle.Exclamation, "Notificacion") limpiar_cajas() End If End Sub
Ahora Procedemos a llamar al procedimiento de busqueda en el boton buscar de la siguiente manera:
Private Sub Button_buscar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_buscar.Click Try With ProgressBar1 .Minimum = 1 .Maximum = 100000 .Value = 1 .Step = 1 For i As Integer = .Minimum To .Maximum ' Perform one step of the action being tracked. .PerformStep() Next i End With buscar_usuario() Catch ex As Exception MsgBox("Ha ocurrido un error para Conectarse al WebService!", MsgBoxStyle.Critical, "Advertencia") End Try End Sub
Creamos a continuacion el procedimiento para limpiar los campos de texto en caso de que no se encuentre ninugun usuario despues de hacer una busqueda.
Sub limpiar_cajas() Me.Text_cedula.Clear() Me.Text_nombre.Clear() Me.Text_apellido.Clear() Me.Text_direccion.Clear() Me.Combo_sexo.Text = "" End Sub
ahora, elaboremos el procedimiento para modificar usuario de la manera como veremos a continuacion:
Sub ModificarUsuario() 'Crea la referencia al web service de java Dim jws As New referenciaws.proceso_wcService Dim ced As String = Me.Text_cedula.Text.Trim Dim nombre As String = Me.Text_nombre.Text.Trim Dim apellido As String = Me.Text_apellido.Text.Trim Dim direccion As String = Me.Text_direccion.Text Dim se As String = Me.Combo_sexo.SelectedItem 'Llama al metodo actualizarUsuario del web service que esta en java 'Si devuelve verdadero es porque se actulizo ese dato Dim funciono As Boolean = jws.actualizarUsuario(ced, nombre, apellido, direccion, se) If funciono = True Then MsgBox("Los Datos del Usuario Se han Actualizado Correctamente!", MsgBoxStyle.Information, "Notificacion") Else MsgBox("Los Datos del Usuario No Se han Podido Actualizar, Verifique!", MsgBoxStyle.Exclamation, "Notificacion") End If End Sub
Luego llamamos a dicho procedimiento de modificar usuario dentro del boton modificar:
Private Sub Button_modificar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_modificar.Click Try ModificarUsuario() Catch ex As Exception MsgBox("Ha ocurrido un error para Conectarse al WebService!", MsgBoxStyle.Critical, "Advertencia") End Try End Sub
Por ultimo solo hace falta crear el procedimiento para eliminar registros de la base de datos, para ello elaboramos el siguiente procedimiento:
Sub eliminarUsuario() 'Crea la referencia al web service de java Dim jws As New referenciaws.proceso_wcService Dim ced As String = Me.Text_cedula.Text.Trim 'Llama al metodo eliminarUsuario del web service que esta en java 'Si devuelve verdadero es porque se elimino ese dato Dim funciono As Boolean = jws.eliminarUsuario(ced) If funciono Then MsgBox("El Usuario ha sido eliminado Satisfactoriamente!", MsgBoxStyle.Information, "Notificacion") Else MsgBox("No se ha Podido eliminar al Usuario, Verifique!", MsgBoxStyle.Exclamation, "Notificacion") End If End Sub
y ahora, procedemos a llamar dicho procedimiento dentro del boton eliminar:
Private Sub Button_eliminar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_eliminar.Click Try eliminarUsuario() Catch ex As Exception MsgBox("Ha ocurrido un error para Conectarse al WebService!", MsgBoxStyle.Critical, "Advertencia") End Try End Sub
Listo Amigos ya hemos terminado la aplicacion, ahora solo queda probarla, les recuerdo que para que el programa se comunique con el webservice, este debe de estar corriendo en el servidor donde se encuentra alojado, una prueba al realizar una busqueda seria la siguiente:
Espero y este tutorial haya sido de su agrado y les resulte util.
Tengo un Webservice montado en PHP el cual se ataca mediante Json-RPC.
Hay alguna forma de montar algo parecido a lo que tu has implementado con un servidor java??.
Gracias y enhorabuena por el tuto.
dejame checarlo y te aviso, saludos : )
Hola como haces para invocar la web servcices en VS2008 Windows Form, haces alguna configuracion en el appconfig??
Hola, estoy utilizando una web service para windows form pero me sale el siguiente error: Error al crear el formulario. Consulte Exception.InnerException para obtener más detalles. Error: Ese ensamblado no permite llamadores de confianza parcial.
sabes a que se debe ??
Muchas gracias por el ejemplo