CREACIÓN DE WEBSERVICES



Documentos relacionados
WEBSERVICES CON FIRMA DIGITAL Versión 1.2

FRAMEWORK 2 Creación de Servicios Web

WEB SERVICES CON AXIS

MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD

JOOMLA MANUAL USUARIO Creación del portal

Práctica 1: Instalación de un servidor de aplicaciones web y diseño de la vista de una aplicación

Tarea 1 Programación José Luis Comesaña

Práctica 2: Instalación de un gestor de bases de datos relacionales y desarrollo de una aplicación Web con persistencia de datos

ATLAS MANUAL DE USUARIO DEL ARQUETIPO WEBSERVICE

Manual de instalación del cliente JAVA-WS

JOOMLA MANUAL USUARIO Creación del portal

Guía Rápida de Inicio

Escudo Movistar Guía Rápida de Instalación Para Windows

Documentación Técnica Conector

Descarga, instalación y uso de herramientas:

Manual de NetBeans y XAMPP

CREAR UN SERVICIO WEB BASICO CON JAVA AXIS2. Víctor J. Sosa

ATLAS MANUAL DE USUARIO DEL ARQUETIPO WEB CON DOCUMENTUM

Distribución de Aplicaciones. Iván Alonso

Escudo Movistar Guía Rápida de Instalación Dispositivos Symbian

INSTALACIÓN DE OPENOFFICE

Registro de traza en Java

Guía de Instalación de la JDK y del Eclipse

Cobian Backup. Inguralde [Enero 2011]

JOOMLA MANUAL USUARIO Creación del portal

CATÁLOGO CATÁLOGO CATÁLOGO CATÁLOGO CATÁLOGO

Java Básico. Empaquetamiento y despliegue de aplicaciones. Copyright

UNIDESYS UNIVERSAL BUSINESS SYSTEMS INSTALACIÓN NUEVO PUESTO DE TRABAJO

Se ha confeccionado una aplicación sencilla para poder probar el interfaz de gestión explotación de MEGA, Modelo Estandarizado de Gestión de Agua.

Guía de Instalación del servicio de BackupOnline de Idecnet. Indice

Ahora hay que instalar el servidor de la base de datos de MySQL que será EasyPHP. Para esto

Para poder instalar el producto, tendremos que obtener el instalador apropiado para nuestro entorno hardware y software.

Kosmo Desktop Manual de desarrollo Instalación y configuración del código fuente de Kosmo en Eclipse

MANUAL DE ACTUALIZACIÓN DEL DEA. Versión del DEA del 10/04/2012

Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación. IIC1102 Introducción a la Programación

Curso Internet Básico - Aularagon

Elastix Web Services (WSDL) Manual de Usuario

GUIA DE USO. APLICACION CAMBIO IVA 2012

WEB SERVICES CREACIÓN DEL SERVICIO

Instalación de la aplicación de COAS Visado Digital

MIGRACIÓN NEXUS 8 A A3ERP 9


ATLAS MANUAL DE USUARIO DEL ARQUETIPO WEB PARA PROYECTOS NEXUS

Requisitos técnicos para la instalación. Arquitectura Hardware Arquitectura Software. Instrucciones de instalación GONG-R

INDICE. Página 2 de 23

GUIA DE LABORATORIO 1(Tercera Parte) Sistemas operativos

MANUAL DE LA CONFIGURACIÓN Y USO DEL MÓDULO DE ASM PARA OPENCART

Especificación WebService para:

GUÍA RED SOCIAL FACEBOOK

Administración Local Soluciones

Recuperador datos externos

Manual básico de Outlook Express

Gestión Documental PREPARACION DEL ENTORNO DE DESARROLLO

Dossier de prácticas

MANUAL DE USO DEL SERVICIO TRANSFIERE (SERVICIO DE TRANSFERENCIA DE ARCHIVOS).

Conseguir las llaves, certificados y archivo de configuración del servidor VPN.

Práctica de introducción a

Administración de sistemas UNIX/Linux Práctica Colección de scripts para la configuración de una infraestructura de máquinas UNIX

Manual de instalación Actualizador masivo de Stocks y Precios

Configuración servidor Tomcat

Instalación del Admin CFDI

PortaldelProveedor. portalproveedores.cartagena.es. Presentatu. facturaelectrónica. Ayuntamiento decartagena. enel

MANUAL COPIAS DE SEGURIDAD

Manual para Declaración Anual

Anexo B. Comunicaciones entre mc y PC

Copias de seguridad con SQL Server 2005 WhitePaper Febrero de 2008

2. Ejecutando JMeter en el laboratorio

CONECTOR CTIFAC CONTENIDO

Hands-On Lab. Windows Azure: Java, Eclipse y Azure. Última Actualización: 16/12/2011

efactura Online La fibra no tiene competencia

MANUAL DEL USUARIO PRINCIPAL

Apéndice 5 Manual de usuario de ColeXión. ColeXión 1.0. Manual de usuario

Aprender a usar correo electrónico

INSTRUCCIONES CIERRE EJERCICIO 2014

Instalación de Tomcat7 en Ubuntu

GUÍA TÉCNICA. Desarrollo de Proyectos en Plataforma Liferay en el Gobierno de Extremadura

D.T.Informática S.L. [Sistema hada] hilo Administrador Desarrollo Activo

PLATAFORMA PASEN Escuela TIC 2.0 NOTA INFORMATIVA A PADRES Y MADRES

1. Definición. Open Source. Escalable. Alto desempeño. Arquitectura Modular. Producto de licencia de código abierto sin coste adicional.

MANEJO DE FICHEROS XML Versión 1.0

Copias de Seguridad con SQL Server Realizar una copia de seguridad de Bases de Datos

TUTORIAL ENVIO SMS MASIVOS. 1. Segmentación de la base de datos de clientes

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

Desarrollo de apps para móviles Android. Entorno de desarrollo

Pasar del correo en IMAP o Webmail con el servicio de correo de Generanet S.L. al servicio de correo de propio con soporte técnico con ValdeSoftware

30 de Mayo de

DESCARGA E INSTALACIÓN DE LA DOCUMENTACIÓN PARA LAS CLASES DEL API DE JAVA. CONSULTAR EN LOCAL O EN INTERNET? (CU00910C)

T3-Rondas V 1.1. Help-Pc, S.L. C/ Pintor Pau Roig, 39 L Premià de Mar Barcelona Tel. (93) Fax marketing@t2app.

GESTOR DE DESCARGAS. Índice de contenido

Scripts de arranque. Pablo Sanz Mercado.

LiLa Portal Guía para profesores

Detectar y solucionar infecciones en un sitio web

PLATAFORMA DE VISADO TELEMÁTICO.

APLICATECA. didimo Marketing. Manual de usuario. By DIDIMO Servicios Móviles.

Accede a su DISCO Virtual del mismo modo como lo Hace a su disco duro, a través de:

MANUAL DE ACTUALIZACIÓN DE AGREGA V3.0.4

Novedades PhotoGestion 5

Transcripción:

CREACIÓN DE WEBSERVICES Versión 1.1 MARZO 2007 Página: 1

1 TABLA DE CONTENIDO 1 TABLA DE CONTENIDO... 2 2 INTRODUCCIÓN... 3 3 HERRAMIENTA DE DESARROLLO ANT... 3 4 CREACION SERVICIO WEB... 3 5 CREACIÓN CLIENTE WEB... 5 6 PROBLEMAS DETECTADOS... 5 7 FICHEROS EJEMPLO... 6 Página: 2

2 INTRODUCCIÓN Este documento indica como construir servicios web y clientes para dichos servicios firmando el mensaje de petición y de respuesta utilizando el estándar XML-Dsig. Para esta firma y la validación de la misma se utilizará la plataforma ASF, debiendo cumplir el servicio y el cliente todos los pasos necesarios para estar de alta en la misma, como se explica en el manual de la misma. 3 HERRAMIENTA DE DESARROLLO ANT Primeramente y antes de seguir adelante indicar que como herramienta de desarrollo de tanto los WebServices como los clientes de los mismos, se decido utilizar Ant. Un proyecto de código abierto de Apache Software Fondation. Ant es una herramienta desarrollada para sustituir al make que podríamos hacer en cualquier sistema operativo, pero que depende de plataforma ya que esta hecha en Java y sus ficheros de configuración se basan en XML. Su uso y funcionamiento se puede asemejar a los ficheros bat, shell o script de otros sistemas operativos. Dentro de un fichero de configuración de ANT, como puede ser el fichero build.xml que veremos más adelante, cada una de las tareas que se deben realizar se denomina target. Además se pueden establecer variables que podrá ser accesibles por cualquier tarea, a través de la marca property. De todas formas podemos encontrar una relación del significado de cada una de las marcas y sus parámetros dentro de la página http://ant.apache.org. 4 CREACION SERVICIO WEB Pasos a seguir para la creación de un Servicio Web: 1. Descargar la versión 1.2.1 de axis de la dirección http://archive.apache.org/dist/ws/axis/1_2_1/axis-bin-1_2_1.zip. 2. Descomprimir el zip de axis en cualquier directorio. A partir de ahora esa ruta será la variable "axis.home". 3. Copiar el contenido del directorio webapps/axis del directorio axis.home a nuestro directorio web del servicio que estemos creando. Eliminando el directorio samples que se encuentra dentro de él, ya que no es necesario. Al concluir este paso tendremos incluido dentro de nuestro Página: 3

directorio WEB-INF, las clases y librerías necesarias para empezar con nuestro servicio web. 4. Hay que crear un fichero usando ANT, como el fichero build.xml de ejemplo (el que viene al final de este apartado o dentro de los ejemplos disponibles dentro de soja_int (ASF->Ejemplos)). Este fichero hay que modificarlo cambiando el nombre del proyecto y las variables que afecten a las rutas físicas de nuestro proyecto. 5. Crear la clase que hará de servicio web, para ello heredar de la clase de sistemas: sistemas.ws.servicioweb. Usar el constructor de esta clase para indicar el nombre del fichero de configuración y que recoja las variables del mismo. Además en esta clase se definirán las operaciones a las que va a dar servicio nuestro WebServices. 6. Luego hay que modificar el fichero anterior eliminando el elemento target llamado autentication-java2wsdl, sustituyendolo por uno propio de nuestro servicio y que ejecuta la tarea "axis-java2wsdl" que genera el WebService, empaquetando las clases generadas dentro del paquete indicado. Además de estas clases se crea un fichero descriptor de nuestro servicio web con extensión wdsl y nombre el que nosotros le indiquemos. Es recomendable que si va a haber varios webservices se cree una tarea para cada servicio. Se puede tomar el ejemplo "autentication-java2wsdl" como guía de creación de esta tarea. 7. Acontinuación crear el fichero deploy.wsdd, del cual se puede ver un ejemplo al final de este punto, ajustandolo con el nombre de la clase del servicio web y el nombre del mismo. En nuestro caso, el servicio es UsuJAutenticationWS y la clase es usuj.ws.usujautenticationws. 8. Realizar un primer despliegue del servicio en un servidor de aplicaciones usando para ello la tarea deploy que esta incluida en el fichero build.xml. La tarea deploy solo crea el ear a partir de la web y copia el fichero en el directorio "deploy.dest". Para el primer despliegue tal vez sea necesario modificar algún fichero de configuración del servidor de aplicaciones para que reconozca la aplicación (server.xml y http-web-site.xml). 9. Ejecutar la tarea deploy-wsdl para realizar el despliegue inicial del WebService en Axis, es decir, para realizar la publicación dentro Axis del servicio web. 10. Copiar el fichero server-config.wsdd del directorio WEB-INF de la aplicación desplegada al de nuestro proyecto de desarrollo. Página: 4

Obs: Para comprobar que nuestro servicio se encuentra dado de alta y responde a peticiones, puede hacerse una petición a la dirección correspondiente a nuestro servicio y siguiendo la estructura: http://servidor:puerto/aplicación/services/claseservicio Esta petición nos debe responder un mensaje de AXIS para saber que esta funcionando correctamente. 5 CREACIÓN CLIENTE WEB Una vez creado nuestro webservice, es hora de crear el cliente. Este punto también se puede seguir en el caso de que no hayamos creado nosotros el servicio, ya que lo únicamente necesario es el fichero wsdl que describe las operaciones del mismo. Una vez con el fichero comentado, que siguiendo nuestro caso se obtendría en el paso 6. Se debería definir tarea "axis-wsdl2java" de Ant, de la que podemos ver un ejemplo en "autentication-wsdl2java". Esta tarea nos creara todas las clases necesarias para invocar el webservice asi como una clase de test que nos permitirá testear el cliente generado en caso de ser necesario. Para poder ejecutar esta clase de test será necesario tener dentro de nuestro proyecto de Eclipse importado el jar de junit. 6 PROBLEMAS DETECTADOS Se han detectado los siguientes problemas en este proceso de creación de cliente y servicio web: - La generación de los paquetes no es todo lo correcta que deberia ser. Al generar el webservice le indicamos un namespace que luego añade al paquete que indiquemos en la generación del cliente, por lo que habra que tenerlo en cuenta. - La variable "service_address" dentro de la clase Locator es incorrecta, le falta añadir el nombre del servicio que se va a usar al final. - El test que crea para recibir el wsdl no funciona nunca a pesar de que los demas si funcionan y de que el servicio devuelve correctamente el WSDL si se le invoca a traves de un explorador. -En OC4J podemos tener problemas para generar el wsdl puesto que el parser que emplea no es del todo estandar para solucionarlo existe un parche para el parser de oracle. Enviar un correo a Arquitectura e Integración de aplicaciones para recibir este parche. Página: 5

7 FICHEROS EJEMPLO Ejemplo de build.xml: <project name="usuj_ws"> <property name="appname" value="${ant.project.name}" /> <property name="src.dir" value="java/fuentes/src"/> <property name="web.dir" value="java/fuentes/web"/> <property name="build.dir" value="java/fuentes/web/web-inf"/> <property name="deploy.dir" value="java/ear"/> <property name="axis.home" value="d:/descargas/axis-bin-1_2_1/axis-1_2_1"/> <property name="deploy.dest" value="d:/producto/oracle9.0.4/j2ee/home8052/icm"/> <property name="target.port" value="8052"/> <property name="target.server" value="pc317668"/> <property name="target.appname" value="${appname}"/> <property name="endpoint-stub.wsdd" value="java/fuentes/web/web-inf/deploy.wsdd"/> <path id="axis.classpath"> <fileset dir="${axis.home}/lib"> <include name="**/*.jar"/> </fileset> <fileset dir="${build.dir}/lib"> <include name="**/*.jar"/> </fileset> <fileset dir="${build.dir}/classes"> <include name="**/*.class"/> </fileset> </path> <taskdef resource="axis-tasks.properties" classpathref="axis.classpath" /> <target name="autentication-java2wsdl" description="crea el WSDL de la clase especificada"> <axis-java2wsdl classname="usuj.ws.usujautenticationws" namespace="usuj.ws.autentication" location="http://${target.server}:${target.port}/${appname}/services" classpath="${build.dir}/classes" output="${build.dir}/usujautenticationws.wsdl"> <mapping namespace="urn:usujautenticationws" package="usujws.servicio"/> <classpath path="${build.dir}"/> </axis-java2wsdl> <target name="autentication-wsdl2java" description="crea las clases necesarias para invocar un webservice, es decir, el cliente del servicio"> <axis-wsdl2java output="${src.dir}" testcase="true" verbose="true" url="${build.dir}/usujautenticationws.wsdl"> <mapping namespace="http://axis.apache.org/ns/interop" package="usujws.servicio"/> </axis-wsdl2java> <target name="compile" description="compile main source tree java files"> <mkdir dir="${build.dir}/classes"/> <javac destdir="${build.dir}/classes" debug="true" optimize="false" deprecation="false" failonerror="true"> <src path="${src.dir}"/> <classpath> <path refid="compile.classpath"/> <fileset dir="${web.dir}/web-inf/lib" includes="*.jar"/> </classpath> </javac> Página: 6

<target name="deploy" description="crea el.ear de la aplicación y lo deja en el directorio ear"> <war destfile="${deploy.dir}/${appname}.war" webxml="${build.dir}/web.xml"> <fileset dir="${web.dir}"/> </war> <ear destfile="${deploy.dir}/${appname}.ear" appxml="${deploy.dir}/meta- INF/application.xml"> <fileset dir="${deploy.dir}" includes="*.war"/> </ear> <delete> <fileset dir="${deploy.dir}" includes="**/*.war"/> </delete> <copy file="${deploy.dir}/${appname}.ear" todir="${deploy.dest}"/> <target name="deploy-wsdl" description="realiza el despliegue inicial del WebService en Axis"> <axis-admin port="${target.port}" hostname="${target.server}" failonerror="true" servletpath="${target.appname}/services/adminservice" debug="true" xmlfile="${endpoint-stub.wsdd}"/> /project> Ejemplo de deploy.wsdd: <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> <service name="usujautenticationws" provider="java:rpc"> <parameter name="classname" value="usuj.ws.usujautenticationws"/> <parameter name="allowedmethods" value="*"/> </service> </deployment> Página: 7