Diferencia entre revisiones de «Maven WebService»

De wiki.mitic.gov.py
Ir a la navegaciónIr a la búsqueda
(Created page with '=Introducción= Otra opción para la creación de clientes WS que nos ofrece Eclipse es junto con Maven, los cuales nos proveen de las herramientas necesarias para trabajar con …')
 
Línea 3: Línea 3:
Otra opción para la creación de clientes WS que nos ofrece Eclipse es junto con Maven, los cuales nos proveen de las herramientas necesarias para trabajar con WebServices, todo ésto se explica en el desarrollo de la página.
Otra opción para la creación de clientes WS que nos ofrece Eclipse es junto con Maven, los cuales nos proveen de las herramientas necesarias para trabajar con WebServices, todo ésto se explica en el desarrollo de la página.


==Creación de Clientes WS con Maven==
==Creación de Clientes Web Services (WS) con Maven==


Para poder crear un cliente WS con Maven se puede utilizar/clonar el proyecto laboratorio que se encuentra en el repositorio git.  
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:
Posicionarse en la carpeta donde deseamos clonar el proyecto, luego ejecutar en consola el siguiente comando:


<pre> git clone git@192.168.201.94:/srv/repos/git/laboratorio/.git/ </pre>
<pre> $ env GIT_SSL_NO_VERIFY=true git clone 'https://git.setics.gov.py/laboratorio/.git'</pre>


[[Image:clonar.png]]
[[Image:clonar.png]]


Con ésto ya tenemos todo el proyecto de laboratorio.
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-se-standalone, que es el proyecto en el cuál se estarán creando las clases para poder consumir un web service.
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.


'''Consideraciones'''
==Configuración del pom.xml==


La estructura del archivo pom.xml debe ser algo parecido a ésto:
La estructura del archivo pom.xml es la siguiente:
<br/>'''Observación:''' En caso de que ud. quiera agregar esta funcionalidad a un proyecto suyo ya existente que utilize tekoporu, fíjese en los comentarios de los agregados en el '''pom.xml'''


<pre><?xml version="1.0" encoding="UTF-8"?>
<source lang="xml"><?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns="http://maven.apache.org/POM/4.0.0"
Línea 29: Línea 30:


<groupId>py.gov.setics.sii</groupId>
<groupId>py.gov.setics.sii</groupId>
<artifactId>prueba</artifactId>
<artifactId>prueba-ws</artifactId>
<version>0.0.1-SNAPSHOT</version>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<packaging>jar</packaging>
Línea 69: Línea 70:
<url>http://maven.ticpy.org/repository/release</url>
<url>http://maven.ticpy.org/repository/release</url>
</repository>
</repository>
                <!-- Este repositorio es necesario agregar para obtener las dependencias com.sun.* -->
<repository>
<repository>
<id>maven2-repository.dev.java.net</id>
<id>maven2-repository.dev.java.net</id>
<name>Java.net Repository for Maven</name>
<name>Java.net Repository for Maven</name>
<url>http://download.java.net/maven/2</url>
<url>http://download.java.net/maven/2</url>
</repository>
</repository>
</repositories>
</repositories>
        <!-- Agregamos el plugin para la generación del WS -->
<build>
<build>
<plugins>
<plugins>
Línea 83: Línea 88:
<configuration>
<configuration>
<extension>true</extension>
<extension>true</extension>
<!-- El directorio de destino de las clases generadas -->
<sourceDestDir>src/main/java</sourceDestDir>
<sourceDestDir>src/main/java</sourceDestDir>
<!-- El paquete para las clases -->
<packageName>py.gov.setics.sii.ws.proxy</packageName>
<packageName>py.gov.setics.sii.ws.proxy</packageName>
</configuration>
</configuration>
Línea 104: Línea 111:
</project>
</project>


</pre>
</source>
 
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.


[[Image:wsdl.png]]
[[Image:wsdl.png]]

Revisión del 13:31 15 oct 2012

Introducción

Otra opción para la creación de clientes WS que nos ofrece Eclipse es junto con Maven, los cuales nos proveen de las herramientas necesarias para trabajar con WebServices, todo ésto se explica en el desarrollo de la página.

Creación de Clientes Web Services (WS) con Maven

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'

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:
Observación: En caso de que ud. quiera agregar esta funcionalidad a un proyecto suyo ya existente que utilize tekoporu, fíjese en los comentarios de los agregados en el pom.xml

<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.setics.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.setics.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> 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)

Generando el cliente

Luego para generar lo que se necesita para consumir el web service, click derecho sobre el proyecto(en éste caso como muestra la imágen 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, el misma deberá ser borrada y luego seguir el mismo procedimiento Generando el cliente