Resistance is Futile

soapUI : Herramienta para pruebas de WebServices

soapui-logoActualmente cuando se desarrollan servicios web es posible probarlos gracias a que los ambientes de desarrollo crean paginas asociadas con cada uno de los metodos del webservice que permiten hacer las invocacion de los servicios directamente para comprobar su funcionamiento, esto sucede con plataformas como Visual Studio y NetBeans, pero no existen por ejemplo para servicios web creados con PHP que soporten WSDL. Estas paginas de prueba tampoco estan disponibles en los servicios web cuando estan en produccion lo que no permiten identificar y probar de manera rapida la funcionalidad de los webservices.

soapUI de eviware es una herramienta que permite rapidamente a traves de una interface grafica, obtener informacion de los webservices, realizar llamados generando las peticiones para cada metodo del webservice y visualizando las respuestas enviadas por el servidor, permitiendo rapidamente identificar las operaciones asociadas con el webservice y permitiendo hacer pruebas rapidamente del funcionamiento de los webservices sin necesidad de recurrir a escribir codigo para crear clientes que consuman los webservices.

soapUI es una de las herramientas que todo desarrollador web debe tener en su arsenal y esta disponible en una version gratuita que puede ser descargada o ejecutada desde el sitio utilizando Java Web Start, para lo cual necesitamos instalar el JRE de Java o tambien una version Pro con caracteristicas avanzadas para aquellos desarrolladores que necesitan herramientas mas potentes. soapUI incluye en sus versiones actuales soporte para servicios web REST, pruebas funcionales y simulacion de webservices.

Para ilustrar su uso, lo utilizaremos para consumir el webservice de Calculadora creado en Java del cual se hablo en una entrada anterior del blog : Publicar Web Service en Java sin Servidor Web

soapui_calculadora

Requisitos :

  • Tener instalado Java

Pasos :

  • Ir a la pagina oficial de soapUI
    http://www.soapui.org
  • Buscar el boton WebStart Now ! o ir al siguiente enlace para ejecutar la version 2.5.1 :
    http://www.soapui.org/jnlp/2.5.1/soapui.jnlp
  • Esto ejecuta el Java Web Start encargado de instalar la aplicacion en el computador
  • Puede tardar algunos minutos, deacuerdo a la velocidad de acceso a Internet
  • Ir al menu File y seleccionar la opcion New soapUI Project
  • Suministrar la siguiente informacion :
    Project Name : Calculadora
    Initial WSDL/WADL : http://localhost:4444/CalculadoraService?wsdl
  • Habilitar la opcion :
    Create sample request for all operations
  • Pulsar el boton Ok
  • En el navegador ir al item sumar y doble click
  • Click en Request1
  • Suministrar los valores de los argumentos a enviar a la suma
  • Pulsar boton verde en la ventana del request para ejecutar el llamado
  • La respuesta se visualiza en la otra parte de la ventana con el resultado de la suma

Enlaces :


WebService con NuSOAP en Servidor Resin

resin_logoEs posible ejecutar un servicio creado en PHP con NuSOAP en el servidor de aplicaciones escrito en Java Resin, esto permite crear webservices que pueden ser alojados en servidores como Apache2 con soporte para PHP, como tambien servidores Java como el GlassFish.

Para que los webservices funcionen es necesario instalar una version igual o superior a la 3.2.1 la cual instalamos en el anterior post (enlace), como tambien realizar un pequeño cambio en el sel codigo (enlace) Servidor donde se reemplaza la lectura de datos via RAW por una lectura de la entrada de datos php://input, quedando de la siguiente forma el archivo servicio.php

 
<?php
	require_once('nusoap.php');
	require_once('sumar.php');
 
	$server = new nusoap_server();
	$server->register('sumar');
 
	$HTTP_RAW_POST_DATA = file_get_contents("php://input");
	$server->service($HTTP_RAW_POST_DATA);
?>
 

De esta forma es posible ejecutar el servicio web encualquier plataforma o servidor que soporte Java.

Enlaces :

UA:A [1.3.0_631]

Instalacion Resin 3.2.1 en Ubuntu 9.04

resin_logoInstalaremos la versión 3.2.1 de Resin, el servidor de aplicaciones Java y PHP de la empresa Caucho Technology sobre el sistema operativo Ubuntu 9.04 con el fin de probar la ejecucion del scriptHola Mundo en PHP. Antes se habia instalado la version 3.1.9 pero esta version en desarrollo provee gran cantidad de mejoras.

Ejecutar Servidor :

  • Abrir una terminal
  • Instalar Java
    sudo apt-get install sun-java6-jdk
  • Descargar una version de Resin
    http://caucho.com/download
  • En este caso descargaremos la version estable 3.2.1 en version GPL
    wget http://caucho.com/download/resin-3.2.1.zip
  • Descomprimimos el archivo
    unzip resin-3.2.1
  • Cambiamos de directorio
    cd resin-3.2.1
  • Ejecutamos el servidor
    java -jar lib/resin.jar start
  • Abrimo el navegador y cargamos la pagina :
    http://localhost:8080
  • Debe mostrar la pagina por defecto del servidor con enlaces para la administración y documentación
    Si no es asi, verifique que no exista ningun servicio ejecutandose en el puerto 8080, como por ejemplo un servidor Tomcat

Crear Script en PHP :

  • Creamos el directorio donde se alojara la el script PHP
    mkdir webapps/hola_php
  • Vamos al directorio
    cd webapps/hola_php
  • Creamos el archivo index.php con el siguiente contenido
    <?php echo "Hola Mundo" ?>
  • Cargamos en el navegador la siguiente direccion :
    http://localhost:8080/hola_php
  • Debe mostrarnos una pagina con el texto : Hola Mundo

Detener el Servidor :

  • Ir al directorio raiz del Resin y ejecutar el comando :
    java -jar lib/resin.jar stop

Aunque no es una prueba completa del funcionamiento del soporte del lenguaje PHP en Resin, es el primer paso para comenzar a realizar mas pruebas con scripts mas complejos, frameworks y aplicaciones.

Enlaces :


Cliente de WebService en Java

java-sunEn entradas anteriores en el Blog creamos un servicio web en Java sin necesidad de utilizar un servidor como Tomcat o Glassfish para la publicacion del mismo, a continuacion implementaremos un cliente en Java generado por medio del WSDL que describe el servicio web.

Requisitos :

  • Kit de Desarrollo de Java
    En este caso utilizaremos el Java Development Kit 6 update 13
  • Para el ejemplo utilizaremos el Sistema Operativo Ubuntu 9.04

Generar Codigo para el Cliente en Java :

  • Abrir una terminal
  • Ejecutar el comando para generar el cliente del servicio web
    wsimport http://localhost:4444/CalculadoraService?wsdl
  • Esto genera el paquete serviciosweb con las clases necesarias para llamar el web service

Utilizar el Cliente :

  • Crear un archivo Cliente.java con el siguiente codigo :
 
package serviciosweb;
 
public class Cliente
{
        public static void main(String[] args)
        {
                CalculadoraService servicio = new CalculadoraService();
                Calculadora calculadora = servicio.getCalculadoraPort();
 
                System.out.println(calculadora.sumar(3,4));
        }
}
 
  • Java utiliza una clase que representa el servicio completo y un Puerto que implementa los metodos del sevicio, por tal motivo se debe crear el servicio y obtener el puerto para poder consumir el servicio
  • Compilar el cliente :
    javac -d . Cliente.java
  • Ejecutar el Cliente
    java Cliente

Enlaces :


Publicar WebService en Java sin Servidor Web

java-sunA partir del Java 6 es muy sencillo crear webservices utilizando anotaciones, a diferencia de las versiones anteriores donde era necesario utilizar librerias de terceros, servidores web, gran cantidad de codigo y archivos de configuracion.

La mayoria de las veces los webservices los implementamos sobre aplicaciones web por lo que se hace necesario tener un servidor como Tomcat o GlassFish para ejecutar la aplicacion web y adicionalmente publicar los servicios web, pero algunas veces solo necesitamos publicar el servicio web para realizar pruebas sin la necesidad un servidor web completo. Esto es ahora posible utilizando un Endpoint que se encarga de publicar el servicio web en una direccion especifica, la cual atiende los llamados al servicio, como tambien genera el WSDL el cual describe el servicio.

A continuación crearemos un servicio web llamado Calculadora el cual posee un metodo llamado sumar que recibe dos numero y retorna la suma de ellos.

Requisitos :

  • Kit de Desarrollo de Java
    En este caso utilizaremos el Java Development Kit 6 update 13
  • Para el ejemplo utilizaremos el Sistema Operativo Ubuntu 9.04

Implementar el WebService en Java :

  • Abrir una terminal
  • Crear un archivo llamado Calculadora.java con el siguiente código :
 
package serviciosweb;
 
import javax.jws.WebMethod;
import javax.jws.WebService;
 
@WebService
public class Calculadora
{
        @WebMethod
        public int sumar(int x, int y)
        {
                return x + y;
        }
}
 
  • Es necesario suministrar el nombre de paquete el cual sera utilizado como namespace en el webservice.
  • Se utilizan anotaciones para especificar que la clase es un webservice y el metodo sumar esta incluido en el webservice.

Crear el Publicador del WebService :

  • Crear un archivo llamado Publicador.java con el siguiente código :
 
package serviciosweb;
 
import javax.xml.ws.Endpoint;
 
public class Publicador
{
        public static void main(String[] args)
        {
                Calculadora calculadora = new Calculadora();
                Endpoint endpoint = Endpoint.create(calculadora);
                endpoint.publish("http://localhost:4444/CalculadoraService");
        }
}
 
  • Este crea un Endpoint el cual crea un servidor web pequeño que recibe las peticiones hechas al webservice
  • Se debe especificar la ruta en la cual queremos publicar el webservice en forma de direccion web, por ejemplo : http://localhost:4444/CalculadoraService

Compilar el WebService :

  • Compilar el codigo fuente del servicio web :
    javac -d . Calculadora.java
  • Compilar el publicador :
    javac -d . Publicador.java
  • Generar los archivos asociados con las anotaciones y el webservice
    apt Calculadora.java

Publicar el Servicio Web :

  • Ejecutar el Publicador del webservice
    java serviciosweb.Publicador
  • Visualizar el WSDL generado para el servicio (utilizar la url donde se publico el servicio)

    http://localhost:4444/CalculadoraService?wsdl

Con esto ya tenemos publicado nuestro servicio web, sin necesidad de tener un servidor web como Tomcat o Glassfish, lo que permite realizar pruebas de una forma rapida.

Enlaces :


Page 2 of 612345...Last »
Powered by WordPress | Designed by Elegant Themes