Diferencia entre revisiones de «Maven WebService»
Sin resumen de edición |
|||
(No se muestran 9 ediciones intermedias de 2 usuarios) | |||
Línea 1: | Línea 1: | ||
=Introducción= | =Introducción= | ||
El Eclipse junto con el Maven nos ofrece una opción para la creación de clientes WebServices(WS), los cuales nos proveen de las herramientas necesarias para consumir WS en el entorno Java, todo ésto se explica en el desarrollo de la página. | |||
=Creación de Clientes Web Services (WS) con Maven= | =Creación de Clientes Web Services (WS) con Maven= | ||
Línea 10: | Línea 10: | ||
Posicionarse en la carpeta donde deseamos clonar el proyecto, luego ejecutar en consola el siguiente comando: | Posicionarse en la carpeta donde deseamos clonar el proyecto, luego ejecutar en consola el siguiente comando: | ||
<pre> $ env GIT_SSL_NO_VERIFY=true git clone 'https://git.setics.gov.py/laboratorio/.git'</pre> | <pre>$ env GIT_SSL_NO_VERIFY=true git clone 'https://git.setics.gov.py/laboratorio/.git' | ||
Cloning into 'laboratorio'... | |||
$ ls laboratorio/ | |||
autenticacion mbohapeWSClient tekoporu-se-standalone tekoporu-shiro tekoporu-wsimport | |||
</pre> | |||
Con ésto ya tenemos todo el repositorio de laboratorio. | Con ésto ya tenemos todo el repositorio de laboratorio. | ||
Línea 29: | Línea 31: | ||
<modelVersion>4.0.0</modelVersion> | <modelVersion>4.0.0</modelVersion> | ||
<groupId>py.gov. | <groupId>py.gov.senatics.sii</groupId> | ||
<artifactId>prueba-ws</artifactId> | <artifactId>prueba-ws</artifactId> | ||
<version>0.0.1-SNAPSHOT</version> | <version>0.0.1-SNAPSHOT</version> | ||
Línea 91: | Línea 93: | ||
<sourceDestDir>src/main/java</sourceDestDir> | <sourceDestDir>src/main/java</sourceDestDir> | ||
<!-- El paquete para las clases --> | <!-- El paquete para las clases --> | ||
<packageName>py.gov. | <packageName>py.gov.senatics.sii.ws.proxy</packageName> | ||
</configuration> | </configuration> | ||
<dependencies> | <dependencies> | ||
Línea 111: | Línea 113: | ||
</project> | </project> | ||
</source> | </source> | ||
==Agregando la funcionalidad a un proyecto existente que utiliza tekoporu== | ==Agregando la funcionalidad a un proyecto existente que utiliza tekoporu== | ||
En caso de que ud. quiera agregar esta funcionalidad a un proyecto suyo ya existente que | En caso de que ud. quiera agregar esta funcionalidad a un proyecto suyo ya existente que utilice '''tekoporu''', fíjese en los comentarios de los agregados en el '''pom.xml''' | ||
=Generando el cliente = | |||
Crear un directorio llamado '''wsdl''' en el directorio '''src''', los archivos WSDL irán allí. El plugin de Maven realiza la búsqueda para los archivos que coincidan con '''*.wsdl''' en éste directorio. | Crear un directorio llamado '''wsdl''' en el directorio '''src''', los archivos WSDL irán allí. El plugin de Maven realiza la búsqueda para los archivos que coincidan con '''*.wsdl''' en éste directorio. | ||
Línea 120: | Línea 124: | ||
Obtener un WSDL válido y guardarlo en src/wsdl(carpeta anteriormente creada) | Obtener un WSDL válido y guardarlo en src/wsdl(carpeta anteriormente creada) | ||
Para generar todo lo que se necesita y así poder consumir el web service, click derecho sobre el proyecto(en éste caso como muestra la imagen anterior '''prueba''') => Run As => Maven Build... (Elegir la opción que tiene al final puntos suspensivos), aparecerá la siguiente ventana: | |||
En la pestaña Main sección Goals escribir el siguiente comando | En la pestaña Main sección Goals escribir el siguiente comando | ||
Línea 136: | Línea 138: | ||
[[Image:console.png]] | [[Image:console.png]] | ||
Si todo fue bien entonces se tuvieron que haber creado las clases necesarias para consumir el web service dentro del <packageName>/packageName> que definimos en el pom.xml | Si todo fue bien entonces se tuvieron que haber creado las clases necesarias para consumir el web service dentro del <packageName></packageName> que definimos en el pom.xml | ||
'''Observación''' | '''Observación''' | ||
Si por alguna razón deseamos volver a generar dichas clases, el Maven genera automáticamente dentro de la carpeta '''target''' un subdirectorio en modo bandera '''jaxws''', | Si por alguna razón deseamos volver a generar dichas clases, el Maven genera automáticamente dentro de la carpeta '''target''' un subdirectorio en modo bandera '''jaxws''', la misma deberá ser borrada(Ver imagen) y luego seguir el mismo procedimiento [[#Generando el cliente | Generando el cliente]] | ||
[[Image:target.png]] | |||
[[#top|Ir al inicio]] | |||
[[Category:Sistema de Intercambio de Información]] | [[Category:Sistema de Intercambio de Información]] |
Revisión actual - 15:49 20 ago 2013
Introducción
El Eclipse junto con el Maven nos ofrece una opción para la creación de clientes WebServices(WS), los cuales nos proveen de las herramientas necesarias para consumir WS en el entorno Java, todo ésto se explica en el desarrollo de la página.
Creación de Clientes Web Services (WS) con Maven
Utilizando una aplicación de ejemplo
Para poder crear un cliente WS con Maven se puede utilizar/clonar el repositorio laboratorio que se encuentra en el repositorio git.
Posicionarse en la carpeta donde deseamos clonar el proyecto, luego ejecutar en consola el siguiente comando:
$ env GIT_SSL_NO_VERIFY=true git clone 'https://git.setics.gov.py/laboratorio/.git' Cloning into 'laboratorio'... $ ls laboratorio/ autenticacion mbohapeWSClient tekoporu-se-standalone tekoporu-shiro tekoporu-wsimport
Con ésto ya tenemos todo el repositorio de laboratorio.
Ir a Eclipse e Importar (File => Import => Existing Maven Project => Luego click en Next) y elegir el tekoporu-wsimport, que es el proyecto en el cuál se estarán creando las clases para poder consumir un web service.
Configuración del pom.xml
La estructura del archivo pom.xml es la siguiente:
<source lang="xml"><?xml version="1.0" encoding="UTF-8"?> <project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>py.gov.senatics.sii</groupId> <artifactId>prueba-ws</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging>
<name></name> <description></description> <url></url>
<parent> <groupId>org.ticpy.tekoporu</groupId> <artifactId>tekoporu-minimal-parent</artifactId> <version>2.2.2-SNAPSHOT</version> </parent>
<dependencies> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </dependency>
<dependency> <groupId>org.ticpy.tekoporu</groupId> <artifactId>tekoporu-se</artifactId> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </dependency> <dependency> <groupId>com.sun.xml.ws</groupId> <artifactId>jaxws-rt</artifactId> <version>2.2</version> </dependency> </dependencies>
<repositories> <repository> <id>maven.ticpy.org</id> <url>http://maven.ticpy.org/repository/release</url> </repository>
<repository> <id>maven2-repository.dev.java.net</id> <name>Java.net Repository for Maven</name> <url>http://download.java.net/maven/2</url> </repository> </repositories>
<build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>jaxws-maven-plugin</artifactId> <version>1.12</version> <configuration> <extension>true</extension> <sourceDestDir>src/main/java</sourceDestDir> <packageName>py.gov.senatics.sii.ws.proxy</packageName> </configuration> <dependencies> <dependency> <groupId>com.sun.xml.bind</groupId> <artifactId>jaxb-xjc</artifactId> <version>2.2.2</version> </dependency> <dependency> <groupId>com.sun.xml.ws</groupId> <artifactId>jaxws-rt</artifactId> <version>2.1.4</version> </dependency> </dependencies> </plugin> </plugins> </build>
</project> </source>
Agregando la funcionalidad a un proyecto existente que utiliza tekoporu
En caso de que ud. quiera agregar esta funcionalidad a un proyecto suyo ya existente que utilice tekoporu, fíjese en los comentarios de los agregados en el pom.xml
Generando el cliente
Crear un directorio llamado wsdl en el directorio src, los archivos WSDL irán allí. El plugin de Maven realiza la búsqueda para los archivos que coincidan con *.wsdl en éste directorio.
Obtener un WSDL válido y guardarlo en src/wsdl(carpeta anteriormente creada)
Para generar todo lo que se necesita y así poder consumir el web service, click derecho sobre el proyecto(en éste caso como muestra la imagen anterior prueba) => Run As => Maven Build... (Elegir la opción que tiene al final puntos suspensivos), aparecerá la siguiente ventana:
En la pestaña Main sección Goals escribir el siguiente comando
jaxws:wsimport
Luego click en Run
En consola la salida debe ser algo parecido a ésto:
Si todo fue bien entonces se tuvieron que haber creado las clases necesarias para consumir el web service dentro del <packageName></packageName> que definimos en el pom.xml
Observación
Si por alguna razón deseamos volver a generar dichas clases, el Maven genera automáticamente dentro de la carpeta target un subdirectorio en modo bandera jaxws, la misma deberá ser borrada(Ver imagen) y luego seguir el mismo procedimiento Generando el cliente