Creacion de un Web Service JAXWS

Como ya hemos mencionado anteriormente, para este tutorial vamos a simular una aplicación que ofrece información metereológica. Creamos un “dinamic web project” en eclipse, y creamos las clases que componen nuestra aplicación:


ParteMetereologico.java

package ejemplo;
 
import java.util.Calendar;
import java.util.Date; 
import java.util.Vector;
 
import javax.jws.WebService;
 
@WebServicepublic
class ParteMetereologico {
 
 public Prevision getPrevisionFecha(String ciudad, Date fecha) {
 
  // Aquí consultaríamos en la base de datos la previsión para ese día y ciudad
  // Devolvemos unos datos de ejemplo
  Prevision prevision = new Prevision(ciudad, fecha, 10, "Lluvioso");
 
  return prevision;
 }
 
 public Vector getPrevision(String ciudad) {
 
  // Aquí consultaríamos en la base de datos la previsión para esa ciudad
  Vector previsiones = new Vector();
 
  // Devolvemos unos datos de ejemplo para los próximos 5 días
  Calendar calendar = Calendar.getInstance();
  calendar.add(Calendar.DATE, 1);
  previsiones.add(new Prevision(ciudad, calendar.getTime(), 10, "Lluvioso"));
  calendar.add(Calendar.DATE, 1);
  previsiones.add(new Prevision(ciudad, calendar.getTime(), 9, "Nubes y claros"));
  calendar.add(Calendar.DATE, 1);
  previsiones.add(new Prevision(ciudad, calendar.getTime(), 8, "Lluvioso"));
  calendar.add(Calendar.DATE, 1);
  previsiones.add(new Prevision(ciudad, calendar.getTime(), 10, "Nublado"));
  calendar.add(Calendar.DATE, 1);
  previsiones.add(new Prevision(ciudad, calendar.getTime(), 15, "Soleado"));
 
  return previsiones;
 }
 
}

Prevision.java

package ejemplo;
 
import java.util.Date;
 
public class Prevision {
 
 String Ciudad = null;
 Date fecha = null;
 int temperatura = 0;
 String estado = null;
 
 public Prevision() {
  super();
 }
 
 public Prevision(String ciudad, Date fecha, int temperatura, String estado) {
  super();
  Ciudad = ciudad;
  this.fecha = fecha;
  this.temperatura = temperatura;
  this.estado = estado;
 }
 
 public String getCiudad() {
  return Ciudad;
 }
 
 public String getEstado() {
  return estado;
 }
 
 public Date getFecha() {
  return fecha;
 }
 
 public int getTemperatura() {
  return temperatura;
 }
 
 public void setCiudad(String ciudad) {
  Ciudad = ciudad;
 }
 
 public void setEstado(String estado) {
  this.estado = estado;
 }
 
 public void setFecha(Date fecha) {
  this.fecha = fecha;
 }
 
 public void setTemperatura(int temperatura) {
  this.temperatura = temperatura;
 }
 
}
La clase ParteMetereologico implementa dos métodos que serán accesibles a través del WS. GetPrevision devuelve la prevision para los próximos cinco días de una ciudad dada, mientras que GetPrevisionFecha devuelve la previsión para una ciudad y una fecha en concreto. Mediante la anotación @WebService le indicamos a JAXWS cual es la clase que implementará el WS.
Una vez creadas las clases, veremos que el proyecto tiene errores. Esto se debe a que tenemos que incorporar las liberías de JAXWS al proyecto. Aquí caben varias posibilidades. Si el servidor de aplicaciones que vayáis a utilizar tiene las librerías de jaxws (los jar que tenemos que incorporar son los que se encuentran en la carpeta lib, dentro del directorio en el que hayamos instalado JAXWS), ya instaladas, os bastará con lo siguiente:
  • Pinchamos con el botón derecho del ratón sobre nuestro proyecto, y seleccionamos “Build Path” – “Configure Build Path…”. Si vamos a crear varios WS, es una buena idea meter las librerías de JAXWS en una librería de usuario. De esta forma cada vez que lo vayamos a incorporar a un proyecto no tendremos que seleccionar todos los jar, si no que seleccionaremos la librería de usuario. Para crear una librería de usuario nos vamos al menú “Window” – “Preferences…” – “Java” – “Build Path” – “User Libraries” – “New”.  Ahí le pondríamos un nombre y seleccionamos los jar que queremos incluir. Posteriormente sólo tendríamos que añadir la librería de usuario que hayamos creado al proyecto.
  • En caso de que el servidor de aplicaciones no tenga las librerías, copiarlas en la carpeta “/WEB-INF/lib” de vuestro proyecto. De esta manera, cuando lo exportéis en el war, Eclipse incluirá los jar de jaxws.
Compilamos el proyecto para que se generen los “.class”.

Comentarios

Publicar un comentario

Entradas populares de este blog

Rootear Motorola Defy

Liferay DXP -IP Geocoder

Pasos para Publicar un sitio Web