Sep 02, 10 by Juan Lebrijo about Web Services, SoapUI, blog, Java
Vamos a generar las clases necesarias para generar un cliente de un Web Service a partir de su WSDL.
Nos basaremos en el proyecto HelloWorld de hace unas semanas, y aquí le añadimos seguridad. En este proyecto devolvíamos el saludo según el nombre que nos pasaban como parámetro a través del Web Service.
Para generar las clases auxiliares utilizaremos SoapUI:
1004.thumbnail.gif6.14 KB
Tendremos que tener bien localizada en nuestro equipo la herramienta wsimport.bat, que nos descargamos con todo el paquete de la implementación estándar de SUN (de JAX-WS):
1005.thumbnail.gif5.47 KB
Nos ha generado un directorio con los fuentes y otro con las clases ya compiladas:
1006.thumbnail.gif8.12 KB
Escribir el cliente con ayuda de estas clases es tan fácil como esto:
package client;
import java.net.MalformedURLException;
import java.net.URL;
import javax.xml.namespace.QName;
import javax.xml.ws.BindingProvider;
public class HelloClient {
public static void main(String[] args) {
HelloService service = null;
try {
// Creamos el servicio con el WSDL
URL wsdlLocation = new URL("http://localhost:7001/wsc/HelloService?WSDL");
String targetNamespace="http://services/";
String name="HelloService";
service = new HelloService( wsdlLocation, new QName(targetNamespace, name));
Hello port = service.getHelloPort();
// Añadimos capacidades de seguridad a la llamada
BindingProvider provider = (BindingProvider) port;
provider.getRequestContext().put(BindingProvider.USERNAME_PROPERTY, "user");
provider.getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, "12345678");
//Mostramos el resultado
System.out.println(port.sayHello(args[0]));
} catch (MalformedURLException e ) {
e.printStackTrace();
}
}
}