lunes, 15 de febrero de 2016

Crear Servicio WEB con MAVEN y TOMCAT

1.- File -> Maven Project . maven-archetype-webapp
2.- GroupId:es.example ArtifactId: webServerTomcat Click->Finish.
3.- Add this to pom.xml file.
    
      com.sun.xml.ws
      jaxws-rt
      2.2.5
    
4.- Create and complete file sun-jaxws.xml in the folder: src/main/webapp/WEB-INF



  
  

5.- Create or modify web.xml (src/main/webapp/WEB-INF/) Plantilla. (Creo que no es necesario)



 
  My First Tomcat Web Service

 
  
    com.sun.xml.ws.transport.http.servlet.WSServletContextListener
  
  
    appwebservicetomcat
    com.sun.xml.ws.transport.http.servlet.WSServlet
    1
  
  
    appwebservicetomcat
    /AppExampleWSt
  
  
    120
  


6.- Crear la carpeta src/main/java y luego el paquete es.example.webServiceTomcat
7.- Crear las siguientes clases BaseClass.java
package es.example.webServiceTomcat;

public class BaseClass {
 
 
 protected Error error = null;
 
 public Error getError() {
  return error;
 } 
 
 public void setError(Error error) {
  this.error = error;
 }  

}
Error.java
package es.example.webServiceTomcat;

public class Error extends BaseClass implements java.io.Serializable
{
 /**
  * Movida para serializar
  */
 private static final long serialVersionUID = 1L;
 
 /**
  * Variables miembro
  */
 private String code;   
 private String description; 
 private String stackTrace;  
 
 /**
  * Constructor 1
  */
 public Error() 
 {
  super();  
 }
 
 /**
  * Constructor 2
  * 
  * @param code
  */
 public Error(String code) 
 {
  super();
  this.code = code;
  this.description = "";
  this.stackTrace = "";
 } 
 
 /**
  * Constructor 3
  * 
  * @param code
  * @param descripcion
  */
 public Error(String code, String descripcion) 
 {
  super();
  this.code = code;
  this.description = descripcion;
  this.stackTrace = "";
 }
 
 /**
  * Constructor 4
  * 
  * @param code
  * @param descripcion
  * @param stackTrace
  */
 public Error(String code, String descripcion, String stackTrace) 
 {
  super();
  this.code = code;
  this.description = descripcion;
  this.stackTrace = stackTrace;
 } 
 
 /**
  * Getters
  */
 public String getCode() {
  return code;
 }
 public String getDescription() {
  return description;
 }
 public String getStackTrace() {
  return stackTrace;
 } 
 
 /**
  * Setters
  */
 public void setCode(String string) {
  this.code = string;
 }
 public void setDescription(String string) {
  this.description = string;
 }
 public void setStackTrace(String string) {
  this.stackTrace = string;
 } 
}
Persona.java
package es.example.webServiceTomcat;

public class Persona extends BaseClass implements java.io.Serializable {
 
 private static final long serialVersionUID = 4L;
 
 String dni;
 String nombre;
 String apellido1;
 String apellido2;
 
 public Persona(String dni, String nombre) {
  this.dni = dni;
  this.nombre = nombre;
 }
 
 public Persona() {
  
 }
 
 
 public String getDni() {
  return dni;
 }
 
 public void setDni(String dni) {
  this.dni = dni;
 }
 
 public String getNombre() {
  return nombre;
 }
 
 public void setNombre(String nombre) {
  this.nombre = nombre;
 }
 
 public String getApellido1() {
  return apellido1;
 }
 
 public void setApellido1(String apellido1) {
  this.apellido1 = apellido1;
 }
 
 public String getApellido2() {
  return apellido2;
 }
 
 public void setApellido2(String apellido2) {
  this.apellido2 = apellido2;
 }

}
DatosPersonales.java
package es.example.webServiceTomcat;

//import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;

@WebService
public class DatosPersonales extends BaseClass {
 
 public DatosPersonales() {
  
 }
    

    @SOAPBinding(style = Style.DOCUMENT)
    public Persona getDatosPersonales(
      @WebParam(name = "dni") String dni,
      @WebParam(name = "nombre") String nombre) {
     Persona per = new Persona();
     
     // Si el dni no es "9999999999" entonces devolvemos un error.
     if (dni.equals("9999999999") == true) {
      per.dni = dni;
      per.nombre = nombre;
     } else {
     per.setError(new Error("01","Error not found.","For example: traceerror from exception"));
     }
     
     // Mejor hacer un try catch en vez de un if
     
     return per;

    
      
    }
 
}
Operations.java // Esta es otra clase para hacer otro servicio web sencillo a parte del anterior.
package es.example.webServiceTomcat;

import javax.jws.WebMethod;
import javax.jws.WebService;

@WebService
public class Operations extends BaseClass {
    @WebMethod
    public double suma(double a, double b) {
        return a + b;
    }
     
    @WebMethod
    public double producto(double a, double b) {
        return a * b;
    }
     
    @WebMethod
    public double resta(double a, double b) {
        return a - b;
    }
    
     
 
}

8.- Ejecutar SOAP UI con la siguiente url http://localhost:8080/webServiceTomcat/DatosPersonalesWS?wsdl
Probar con dni 9999999999 o cualquier otro.

No hay comentarios:

Publicar un comentario