post icon

Crear un Web Service con Java y consumirlo con .Net

Normalmente cuando recurrimos al uso de los Web Services lo creamos tanto del lado servidor como cliente en el mismo lenguaje, pero no siempre es así, varios pueden ser estos motivos, trabajamos con otra empresa que desarrolla en otro lenguaje que el nuestro, o queremos mezclar dos sistemas ya existentes sin construir todo de nuevo, incluso muchos otros motivos inimaginables. Hoy haremos un WS server construido con Java y NetBeans bastante sencillo, que recibirá 1 parámetro de fecha retornará la edad, esto será consumido desde una aplicación cliente construida en VB.net. Primeramente abrimos nuestro IDE y creamos un proyecto nuevo Java Web, de tipo Web Application..

new-project

Una vez elegido le asignamos un nombre, en este caso WebApp, además de asignar la ruta del proyecto..

set-location

Ahora procedemos a asignar el servidor de aplicación que queremos usar, si no tenemos configurado esto podemos agregar uno nuevo, en mi caso use Tomcat 6 ya que lo tenía instalado, pero sin ningún problema podría utilizarse la versión 5.5, o el mismo Glassfish que propone el IDE..

setting-server

En la siguiente pantalla nos da la opción de elegir el framework a utilizar, para este ejemplo no elegimos ninguno, y terminamos este wizzard. Lo siguiente a hacer es, crear el nuevo Web Service de este modo: new-ws Asignamos el nombre de la clase WSDevTroce, dentro del paquete ws

set-location

Teniendo ya nuestra clase, necesitamos agregar una operación o método, haciendolo así:

add-operacionEl método se llamará CalcularEdad..

calcular-edad El código que necesitamos agregar es el siguiente, el cual se dedica a hacer un resta de la fecha que recibe con la actual del sistema. El algoritmo de calculo expuesto tiene el inconveniente que no previene años bisiestos, así que podría eventualmente tener una diferencia sustancial, pero el objetivo de esta guía no es hacer restas de fechas donde sería mejor utilizar la clase GregorianCalendar, sino mostrar el uso de un WS creado con Java y ser consumido por .Net

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package ws;
 
import javax.jws.WebMethod;
import javax.jws.WebService;
 
/**
 * @author GeekZero@DevTroce.com
 */
@WebService()
public class WSDevTroce {
 
    /**
     * Web service operation
     */
    @WebMethod(operationName = "CalcularEdad")
    public String calcularEdad(java.util.Date fechaNacimiento){
            // obtener la fecha del sistema
            java.util.Date hoy = new java.util.Date();
 
            // obtener el long de las fechas para hacer la diferencia
            long fechaInicialMs = fechaNacimiento.getTime();
            long fechaFinalMs = hoy.getTime();
 
            // restar las fechas (obtenida en milisegundos)
            long diferencia = fechaFinalMs - fechaInicialMs;
 
            /* Calcular cuantos años hay de diferencia, no se tienen en cuenta
            los años bisientos por lo que pueden tener un margen de error */
            double dias = Math.floor((diferencia / (1000 * 60 * 60 * 24) / 365));
 
            // retornar calculo
            return "Tienes: " + (int)dias + " años";
 
    } // end calcularEdad
} // end WSDevTroce

Ya vamos terminando el lado de Java, tan sólo nos queda presionar F6 y testear el WS, lo hacemos de la siguiente manera: test-wsCon todo esto hecho correctamente, podemos pasar a construir el lado cliente, que será una Aplicación Web con ASP.net escrita en VB.net, creamos un proyecto web nuevo llamado WSCliente.. new-asp La página que vamos a crear debe quedar así, obviamente no es para nada estético, de eso se encargaría uds 😛 sólo queremos probar la funcionalidad.. Agregamos la referencia web necesaria..

desing-asp Lo necesario e importante ahora es agregar la referencia web mediante el WSDL, en el siguiente menú..

add-ref-web

Con esto agregaríamos finalmente la referencia del Web Service..add-ws

El código debe ser el siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<script><!--mce:0--></script>
 
 
 
 
 
<form id="form1">
 
<div>
 
 
</div>
 
 
<div>
 
</div>
 
</form>

Y wola!, quedando así el despliegue completo..

resultado-final

Comentarios desde Facebook:

  1. avatar
    Matheoz MEXICO Internet Explorer Windows
    21 Julio 2011 at 11:25 #

    Ya instale los Plugins de NetBeans necesarios, ya puedo ver la opcion WebApplication Server, pero el NetBeans no encuentra la instalacion del Tomcat, al parecer debo buscarlo y configurarlo desde el Boton ‘Add Server’ (en la pantalla Servers and Settings)

    Continuo trabajando

  2. avatar
    Zehdhe MEXICO Mozilla Firefox Windows
    14 Julio 2011 at 18:23 #

    Para habilitar la opción de Web Application que esta en el menú:
    File->New Project->Java Web

    Debes instalar (actualizar) los Plugins que te faltan. Ve al menú Tool->Plugins y depues en la pestaña Update, buscas el Java WebApplications y lo instalas. El Netbeans lo debe descargar con todas sus dependencias y actualizartelo.

  3. avatar
    Fernando PERU Google Chrome Windows
    6 Junio 2011 at 18:42 #

    Alguien sabe por casualidad como invocar un web service de java desde Vb 6.0… si ya se que es algo antiguo, pero necesito terminar un trabajo y no se como engancharlos… Gracias por su apoyo…!!!

  4. avatar
    Matheoz MEXICO Mozilla Firefox Windows
    26 Mayo 2011 at 19:18 #

    Muy interesante, tratare de implementarlo y les cuento como me fue.

    • avatar
      Matheoz MEXICO Mozilla Firefox Windows
      30 Mayo 2011 at 14:00 #

      Baje e instale el NetBeans IDE 6.8, tengo el Java 1.6.0.23, y es un WinXp ServicePack 2, pero no veo la opción de crear un nuevo proyecto WebApplication desde el NetBeans.

      Pueden decirme como habilito esta opción, gracias.

      .

Responder