Ejemplo de cliente de servicio web Java
Empecemos a escribir los servicios web RESTful reales con Jersey Framework. Antes de empezar a escribir tu primer ejemplo utilizando Jersey Framework, tienes que asegurarte de que has configurado tu entorno Jersey correctamente como se explica en el capítulo Servicios Web RESTful – Configuración del entorno. Aquí, también estoy asumiendo que usted tiene un poco de conocimiento práctico de Eclipse IDE.
El primer paso es crear un Proyecto Web Dinámico usando Eclipse IDE. Siga la opción Archivo → Nuevo → Proyecto y finalmente seleccione el asistente de Proyecto Web Dinámico de la lista de asistentes. Ahora nombre su proyecto como UserManagement utilizando la ventana del asistente como se muestra en la siguiente captura de pantalla -.
Como segundo paso vamos a añadir Jersey Framework y sus dependencias (librerías) en nuestro proyecto. Copie todos los jars de los siguientes directorios de la carpeta jersey zip descargada en el directorio WEB-INF/lib del proyecto.
Una vez que hayas terminado de crear los archivos fuente y de configuración web, estás listo para este paso que es compilar y ejecutar tu programa. Para ello, utilizando Eclipse, exportar su aplicación como un archivo war y desplegar el mismo en tomcat.
Ejemplo de cliente Jax-ws
Algunos frameworks Java, como Jersey (JAX-RS) y Restlet, están diseñados para servicios Restful. Sin embargo, el HttpServlet por sí mismo proporciona una API ligera, flexible, potente y bien probada para la prestación de este tipo de servicios. Lo demostraré con el ejemplo de novelas.
Desplegar el servicio web de novelas requiere un servidor web, por supuesto. Mi elección es Tomcat, pero el servicio debería funcionar (¡famosas últimas palabras!) si se aloja, por ejemplo, en Jetty o incluso en un servidor de aplicaciones Java. El código y un README que resume cómo instalar Tomcat están disponibles en mi sitio web. También hay un script Apache Ant documentado que construye el servicio de novelas (o cualquier otro servicio o sitio web) y lo despliega bajo Tomcat o el equivalente.
Como se ha señalado, el archivo ZIP en mi página web contiene un script Ant que compila y despliega un sitio web o servicio. (También se incluye una copia de novels.war en el archivo ZIP.) Para el ejemplo de novels, un comando de ejemplo (con % como símbolo de línea de comandos) es:
% ant -Dwar.name=novels deployEste comando compila los archivos fuente Java y luego construye un archivo desplegable llamado novels.war, deja este archivo en el directorio actual y lo copia en TOMCAT_HOME/webapps. Si todo va bien, una petición GET (utilizando un navegador o una utilidad de línea de comandos, como curl) sirve como primera prueba:
Cliente soap Java
¿Por qué REST? REST adopta los preceptos de la web, incluida su arquitectura, ventajas y todo lo demás. No es de extrañar, dado que su autor, Roy Fielding, participó en probablemente una docena de especificaciones que rigen el funcionamiento de la web.
Todos ellos son factores críticos en la creación de servicios resistentes. Pero eso no es todo. La web se construye a partir de un montón de pequeñas especificaciones, de ahí que haya podido evolucionar fácilmente, sin enredarse en “guerras de estándares”.
Cambia el nombre a “Nómina” y elige “Generar proyecto”. Se descargará un archivo .zip. Descomprímalo. Dentro encontrarás un proyecto simple, basado en Maven, incluyendo un archivo de construcción pom.xml (NOTA: Puedes usar Gradle. Los ejemplos de este tutorial estarán basados en Maven).
Vamos a empezar con lo más simple que podemos construir. De hecho, para hacerlo lo más simple posible, podemos incluso omitir los conceptos de REST. (Más adelante, añadiremos REST para entender la diferencia).
Si está utilizando el símbolo del sistema de Windows para emitir comandos cURL, lo más probable es que el siguiente comando no funcione correctamente. Debes elegir un terminal que soporte argumentos entre comillas simples, o usar comillas dobles y luego escapar las que están dentro del JSON.
Crear webservice en java
El directorio del proyecto (src_client) y el archivo fuente Java de ejemplo src_client/org/myorg/MathClient.java se crearon en el paso “Crear un proyecto” de la sección Escribir un servicio web basado en Info*Engine.
El archivo fuente MathClient.java depende de los artefactos fuente, que se generan a partir de su servicio web desplegado. Antes de poder completar el código fuente de su cliente, debe generar y compilar estos artefactos. Tal y como se genera, MathClient.java se compila, pero no hace nada hasta que se utiliza para invocar un método de servicio web.
Sin embargo, como su clase principal no hace nada, entonces ejecutar el JAR tampoco hace nada. Ejecutar el comando ant anterior procesa el WSDL para su servicio web y genera artefactos fuente Java a lo siguiente:
Al crear el proyecto de servicio web, se proporcionó la propiedad -Dsecurity.policy=usernameAuthSymmetricKeys. Esto instruyó al framework para asegurar explícitamente el servicio web con la política de seguridad, que se describe en Username Authentication with Symmetric Keys. Si esta propiedad no se hubiera proporcionado explícitamente, entonces la política de seguridad habría sido por defecto el valor de la propiedad security.policy como se configura en <Windchill>/bin/adminTools/WebServices/security.properties.