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:
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:
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; } }
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.
Muy buen aporte , muchas gracias por tu publicación!
ResponderEliminar