domingo, enero 02, 2011

Java - Web Services en Java - Comunicar Java con VB.Net parte II


"Si usa algún código del siguiente tutorial, den el icono de ME GUSTA del Facebook que se encuentra en su mano derecha, para que se vuelva Seguidor del Blog y también comentenos que tal les pareció el tutorial"

1. Entorno


  • Visual Studio 2010
  • JDK 6 Update 21
  • Netbeans 6.9.1
  • Apache Tomcat
  • MySQL 5.0.

2. Introducción


El ejemplo que se mostrara a continuación sirve para consumir un servicio web que esta en Java desde una aplicacion de escritorio que esta en Visual Basic.Net. Para ver como construir el servicio web entrar a la siguiente PAGINA

3. Desarrollo


3.1. Crear proyecto en Visual Studio 2010

Debemos de crear un proyecto en Visual Studio 2010 del tipo Windows y con el lenguaje Visual Basic. Al cual lo llamaremos "AplicacionWebServiceEnNet"















3.2. Diseño del Formulario

Diseñamos el siguiente formulario












El cual recibe los siguiente nombres los componentes del formulario

  • txtCodigo --> TextBox
  • txtNombre --> TextBox
  • txtApellido --> TextBox
  • cboTipo --> ComboBox (Con tres Items: Estudiante UPAO, Estudiate Otro, Profesional, JPC)
  • dtpFechaNacimiento --> DateTimePicker
  • btnNuevo --> Button
  • btnModificar --> Button
  • btnEliminar --> Button
  • btnModificar --> Button

3.3. Agregando Servicio Web

En la Parte I del Tutorial (si desean verlo visitar el siguiente LINK) testeamos el servicio Web hecho en Java y este servicio Web nos devuelve un dirección electrónica (URL) que termina con WSDL. Esta dirección electrónica es la que debemos de agregar como referencia a nuestra aplicación.









Para agregar el servicio web a nuestro proyecto en Visual Studio debemos de ir a la parte de "Explorador de Soluciones" y a nuestro proyecto hacemos clic derecho y seleccionamos la opción de "Agregar referencia web"


















Cuando hacemos clic en la opción anterior nos sale que debemos de poner la URL de nuestro Web Service, y entonces ahí pegamos nuestra dirección electrónica y presionamos el botón de color verde.

















Al presionar el boton verde nos mostrara todos los Web Method que hemos creado en Java y a nuestra referencia le ponemos como nombre  "WebReference"

















Y veremos que al presionar el botón "Agregar Referencia" en nuestro proyecto se agrego la referencia a nuestro servicio web.














3.4. Codificando el formulario

3.4.1. Métodos de soporte

Debemos de crear unos métodos que den soporte a la aplicación, como el de limpiar todo el formulario y habilitar los controles.

'Metodo q permite Hablitar o Deshabilitar Controles
Private Sub estadoComponentes(ByVal flag As Boolean)
 Me.txtNombre.ReadOnly = Not flag
 Me.txtApellido.ReadOnly = Not flag
 Me.cboTipo.Enabled = flag
 Me.dtpFechaNacimiento.Enabled = flag
 If flag Then
     Me.txtNombre.Focus()
 End If
End Sub

'Limpia todos los controles
Private Sub limpiar()
 Me.txtCodigo.Text = ""
 Me.txtNombre.Text = ""
 Me.txtApellido.Text = ""
 Me.cboTipo.SelectedIndex = 0
 Me.dtpFechaNacimiento.Value = Now
End Sub

3.4.2. Métodos para llamar al Servicio Web

Vamos a crear cuatros métodos que serán los encargados de llamar a nuestro Web Method que creamos en Java. Recordar que a la referencia web lo llamamos "WebReference"

'Metodo utilizado para insertar un participante
Private Sub insertarParticipante()
  'Crea la referencia al web service de java
  Dim jws As New WebReference.WebServiceJavaService
  Dim nombre As String = Me.txtNombre.Text.Trim.ToUpper
  Dim apellido As String = Me.txtApellido.Text.Trim.ToUpper
  Dim fechaNacimiento As String = CStr(Me.dtpFechaNacimiento.Value)
  Dim tipoParticipante As Integer = Me.cboTipo.SelectedIndex
  'Llama al metodo insertar persona del web service que esta en java
  'Si devuelve verdadero es porque se inserto ese dato
  Dim rpta As Boolean = jws.insertarPersona(nombre, apellido, fechaNacimiento, tipoParticipante)
  If rpta Then
    MessageBox.Show("Se inserto al participante de forma correcta", "MENSAJE", MessageBoxButtons.OK, MessageBoxIcon.Information)
  Else
    MessageBox.Show("No se pudo insertar al participanete", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error)
  End If
End Sub

'Metodo utilizado para actualizar los datos del participante
Private Sub actualizarParticipante()
  'Crea la referencia al web service de java
  Dim jws As New WebReference.WebServiceJavaService
  Dim codigo As Integer = CInt(Me.txtCodigo.Text.Trim)
  Dim nombre As String = Me.txtNombre.Text.Trim.ToUpper
  Dim apellido As String = Me.txtApellido.Text.Trim.ToUpper
  Dim fechaNacimiento As String = CStr(Me.dtpFechaNacimiento.Value)
  Dim tipoParticipante As Integer = Me.cboTipo.SelectedIndex
  'Llama al metodo actualizar persona del web service que esta en java
  'Si devuelve verdadero es porque se actulizo ese dato
  Dim rpta As Boolean = jws.actualizarPersona(codigo, nombre, apellido, fechaNacimiento, tipoParticipante)
  If rpta Then
    MessageBox.Show("Se actualizo al participante de forma correcta", "MENSAJE", MessageBoxButtons.OK, MessageBoxIcon.Information)
  Else
    MessageBox.Show("No se pudo actualizar al participanete", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error)
  End If
End Sub

'Metodo utilizado para eliminar un participante
Private Sub eliminarParticipate()
  'Crea la referencia al web service de java
  Dim jws As New WebReference.WebServiceJavaService
  Dim codigo As Integer = CInt(Me.txtCodigo.Text.Trim)
  'Llama al metodo eliminar persona del web service que esta en java
  'Si devuelve verdadero es porque se elimino ese dato
  Dim rpta As Boolean = jws.eliminarPersona(codigo)
  If rpta Then
    MessageBox.Show("Se elimino al participante de forma correcta", "MENSAJE", MessageBoxButtons.OK, MessageBoxIcon.Information)
  Else
    MessageBox.Show("No se pudo eliminar al participanete", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error)
  End If
End Sub

'Metodo utilizado para buscar un participante por su codigo
Private Sub buscarParticipante()
  'Crea la referencia al web service de java
  Dim jws As New WebReference.WebServiceJavaService
  Dim codigo As Integer = CInt(Me.txtCodigo.Text.Trim)
  'Llama al metodo buscarPersonaCodigo del web service que esta en java
  'Si devuelve verdadero es porque se encontro ese dato
  Dim rpta As Boolean = jws.buscarPersonaCodigo(codigo)
  If rpta Then
    'Establece los valores a los controles del formulario
    Me.txtNombre.Text = jws.getNombre
    Me.txtApellido.Text = jws.getApellido
    Me.dtpFechaNacimiento.Value = CDate(jws.getFechaNacimiento)
    Me.cboTipo.SelectedIndex = jws.getTipo
    Call Me.estadoComponentes(True)
  Else
    MessageBox.Show("No existe participante con ese codigo", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error)
    Call Me.limpiar()
    Call Me.estadoComponentes(False)
  End If
End Sub

3.4.3. Codificando los eventos del formulario

Vamos a codificar los eventos click de los botones y load del formulario

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  Me.cboTipo.SelectedIndex = 0
  Call Me.estadoComponentes(False)
End Sub

Private Sub btnNuevo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNuevo.Click
  Call Me.estadoComponentes(True)
  Call Me.limpiar()
End Sub

Private Sub btnModificar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnModificar.Click
  Dim cod As String = InputBox("Ingrese codigo", "Consultar")
  If cod <> "" Then
    Me.txtCodigo.Text = cod
    Call Me.buscarParticipante()
  End If
End Sub

Private Sub btnGuardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGuardar.Click
  If Me.txtCodigo.Text.Length = 0 Then
    Call Me.insertarParticipante()
  Else
    Call Me.actualizarParticipante()
  End If
  Call Me.limpiar()
  Call Me.estadoComponentes(False)
End Sub

Private Sub btnEliminar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEliminar.Click
  If (Me.txtCodigo.Text.Length > 0) Then
    Call Me.eliminarParticipate()
    Call Me.limpiar()
    Call Me.estadoComponentes(False)
  Else
    MessageBox.Show("No busco a la persona a eliminar", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Warning)
  End If
End Sub

4. Ejemplo de la Aplicación


4 comentarios:

Gracias por tu ejemplo me ha servido de mucho :)

exelente blog , me ha servido de mucho

Excelente Aporte, Gracias.

El tutorial esta buenisimo con imagenes y todo bien explicado, sigue asi compartiendo tu conocimiento, gracias