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