Servicios Web en Java II
Después de haber arrancadao nuestro servicio web como vimos en la primera parte de este curso, vamos a ver como podemos crearnos un cliente que conecte y pueda realizar las diferentes operaciones que propusimos.
Creamos un nuevo proyecto tal cual vimos en el apartado anterior, ahora en vez de crearnos una clase normal en java iremos a BusinessTier, Web Services y pulsaremos sobre Web Service proxy.
Pulsamos siguiente e iremos a una ventana donde nos piden la ruta del MyWebService1.wsdl que creamos anteriormente, para ello la buscamos en la carpeta donde guardamos el proyecto anterior, en public html, WEB INF y dentro de la carpeta wsdl lo encontraremos.
Ahora si pulsamos sobre finalizar veremos como se nos crean muchos archivos en nuestro proyecto, ahora tendremos que conectar.
Si todo ha ido bien nos aparecerá el cursor dentro del main de la clase proxy que hemos creado, donde nos dice exactamente donde tendremos que poner nuestro código.
[java]
public static void main(String[] args) {
try {
AQUI.mypackage.MyWebService1SoapHttpPortClient myPort = new AQUI.mypackage.MyWebService1SoapHttpPortClient();
System.out.println(”calling ” + myPort.getEndpoint());
// Add your own code here
} catch (Exception ex) {
ex.printStackTrace();
}
}
[/java]
Ahora tendremos que añadir al main un par de lineas para poder conectar, para ello necesitaremos saber la url que nos proporcionó antes el jdeveloper donde se ubica nuestro servicio web, una vez que la tengamos nos quedarÃa de esta manera:
[java]
public static void main(String[] args) {
try {
AQUI.mypackage.MyWebService1SoapHttpPortClient myPort = new AQUI.mypackage.MyWebService1SoapHttpPortClient();
System.out.println(”calling ” + myPort.getEndpoint());
myPort.setEndpoint( “http://zeus:8990/ServicioWebForo-ServicioWebForo-context-root/MyWebService1SoapHttpPort” );
myPort.setMaintainSession( true );
// Login and authenticate
//boolean hola = myPort.login( “p”, “p” );
//Llamamos a las funciones que queramos de nuestro servicio web
String mensaje = myPort.buscarMensajes(”g”,”g”,”MENSAJE”);
System.out.println(mensaje);
} catch (Exception ex) {
ex.printStackTrace();
}
}
[/java]
Ya está terminado nuestro cliente, ahora cada uno le da forma a su imagen y semejanza, usando la imaginación podremos hacer todo lo que queramos.
Yo añadà una interfaz gráfica con SWING para gestionar todo el cliente, en cuanto tenga un hueco me gustarÃa subir el código por si alguien lo necesita, de todas maneras la base está aqui, a partir de esto podemos crear lo que más nos guste.
Jun 26
10 Comentarios / 915 lecturas 
Noviembre 23rd, 2007 a las 7:55 pm
Buen par de artÃculos para comenzar a meter la cabeza en esto de los servicios web…
gracias!
Noviembre 24th, 2007 a las 11:33 am
De nada! dentro de poco empezaré igual pero con php
Abril 30th, 2008 a las 9:37 pm
hola, he logrado crear el web service pero no entiendo aun porque hacer un proxy en le cliente la verdad yo tengo ya una apliacion hecha como cliente con servlets y jsp, mi pregunta es: como podria consumir el web service? si y a la apliaccion cliente ya existe no como proxy, ademas como desplegarlo en apache tomcat, gracias de antemano
Mayo 1st, 2008 a las 12:41 am
[...] hola, he logrado crear el web service pero no entiendo aun…will [...]
Mayo 1st, 2008 a las 2:34 am
Hola, como puedo consumir un web service desde un servlet o un jsppor favor ayudame gracias
Mayo 1st, 2008 a las 10:04 am
will, para poder llamar a un servicio web, tienes que hacerlo de la manera que se explica en este tutorial, si quieres puedes reutilizarlo en un servlet, pero si sigues un patrón de diseño MVC no serÃa muy conveniente hacerlo en un jsp.
Mayo 3rd, 2008 a las 12:35 am
gracias, creo que te entendi, voy a probar lo que estoy pensando, te comento mis experiencias, gracias una vez mas.
Mayo 4th, 2008 a las 4:26 pm
De nada will, espero que todo te salga bien
Julio 8th, 2008 a las 6:29 pm
Hice un servicio web basandome en el tuyo con unas modificaciones, que implican seleccionr todos los datos de una tabla, la duda que tengo es como regresar esos datos o en que se puden regresar en una tabla, en variables? y ademas no se si hayas echo un servicio en java y que tu cliente sea en .NET? gracias de ntemano
Julio 9th, 2008 a las 7:37 am
Hola jcDiaz, en principio puedes devolver una tabla en arrays… creo que es la forma más sencilla de trabajar con esos datos o puedes hacer un collection de objeto lo parseas a xml y lo envÃas al receptor para que lo trasnforme al objeto inicial.
Sobre lo del cliente .NET en eso se basan los servicios web, para comunicar distintas plataformas con distintos lenguajes, yo no lo he hecho nunca pero los he visto y son bastante sencillos de realizar, mucho más que con java.