lunes, 3 de diciembre de 2012

CREACIÓN DE UN SERVICIO WEB

En esta sección les explicaré como crear un servicio web en java, para esto usaremos como herramienta el SpringSource. Primero, creamos un proyecto maven con apache cfx como se muestra a continuación:





Crearemos 3  Source Folder adicionales  src/main/java , src/test/java , src/test/resources; de la siguiente manera:



En el archivo pom.xml, haremos los siguientes cambios:


<project xmlns="http://maven.apache.org/POM/4.0.0" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  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>edu.up</groupId>
  <artifactId>demoWebService</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>demoWebService Maven Webapp</name>
  <url>http://maven.apache.org</url>
  

    <!-- Dependency properties -->
    <properties>
        <junit-version>4.5</junit-version>
        <cxf.version>2.2.6</cxf.version>
        <spring-version>3.0.5.RELEASE</spring-version>
        <commons-logging-version>1.1.1</commons-logging-version>
    </properties>

      <!-- Dependency definitions -->
    <dependencies>
    
        <!-- Apache CXF dependencies -->
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-frontend-jaxws</artifactId>
            <version>${cxf.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-transports-http</artifactId>
            <version>${cxf.version}</version>
        </dependency>
        
        <!-- Spring Dependencies -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring-version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>${spring-version}</version>
        </dependency>
        
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>${spring-version}</version>
        </dependency>        
        
        <!-- Logging -->
        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>${commons-logging-version}</version>
        </dependency>
        
        <!-- Testing -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>${junit-version}</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

  
      <!-- Plugin configuration -->
    <build>
        <finalName>demoWebService</finalName>
        <!-- Feel free to change maven-compiler-plugin configuration -->
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.cxf</groupId>
                <artifactId>cxf-java2ws-plugin</artifactId>
                <version>${cxf.version}</version>
                <dependencies>
                    <dependency>
                        <groupId>org.apache.cxf</groupId>
                        <artifactId>cxf-rt-frontend-jaxws</artifactId>
                        <version>${cxf.version}</version>
                    </dependency>
                    <dependency>
                        <groupId>org.apache.cxf</groupId>
                        <artifactId>cxf-rt-frontend-simple</artifactId>
                        <version>${cxf.version}</version>
                    </dependency>
                </dependencies>
             
            </plugin>
        </plugins>
    </build>
    
</project>

En el archivo web.xml hacemos los siguientes cambios:


Creamos 3 clases:
1. Una clase interfaz llamada HolaMundo para el web service.
2. Una clase llamada HolaMundoImpl que implementa los métodos la clase interfaz.
3. Una clase bean llamada Persona que tendrá los datos del objeto persona.

Luego de ello implementaremos los siguientes métodos con las configuraciones respectivas:




Entre las anotaciones para la creación de un web service se tiene.

  • @WebService: indica que la clase será un web service.
  • @WebService(endpointInterface="upc.edu.pe.HolaMundo") : marca la clase como la implementación de un web service.
  • @WebResult(): mapea el resultado de una operación a un wsdl o un xml.
  • @WebParam(): se usa para marcar los parámetros del método como accesibles.
Luego de ello creamos un archivo de configuración en applicationTest.xml y ponemos el siguiente código:


Finalmente, creamos un archivo de configuración llamado applicationContext.xml en la carpeta web-inf del proyecto y añadimos  el siguiente código:


Al tener todo ya configurado, corremos el proyecto y aparecerá la siguiente página:


Al acceder a la ruta mostrada podremos observar la estructura de nuestro servicio web como un archivo xml.



No hay comentarios:

Publicar un comentario