Un cliente


(Imagen: Rembrandt - El filósofo)

Veamos como hacer un cliente para el Web Service que hemos creado, en nuestro lenguaje favorito:

package ch01.ts;

import javax.xml.namespace.QName;
import javax.xml.ws.Service;
import java.net.URL;


class TimeClient{
URL url = new URL("http://localhost:9876/ts?wsdl");
QName qname = new QName ("http://ts.ch01", "TimeServerImplService");
Service service = Service.create(url, qname);
TimeServer eif = service.getPort(TimeServer.class); System.out.println(eif.getTimeAsString()); System.out.println(eif.getTimeAsElapsed());
}

A ver. Se observa que hemos instanciado la clase QName como nombre calificado XML del servicio. El primer argumento es el URI del servicio, y el segundo es el nombre del servicio publicado en el WSDL. Una vez creado el URL (apuntando a la ruta del WSDL) y el QName, se invoca al método Service.create, para crear una factory para el servicio.

Luego se invoca al método getPort del service creado, que extrae una endpoint interface ("port" del servicio). En el documento WSDL, la sección portType describe las operaciones a incluir en el Web Service. El método getPort devuelve una referencia a un objeto Java que pueda invocar a las operaciones de este porType. La referencia a port es del tipo TimerService, que es la SEI del Web Service.

Basado en el capítulo 1 de Java Web Services: Up and Running de Martin Kalin

Publicar un comentario