A partir del Java 6 es muy sencillo crear webservices utilizando anotaciones, a diferencia de las versiones anteriores donde era necesario utilizar librerias de terceros, servidores web, gran cantidad de codigo y archivos de configuracion.
La mayoria de las veces los webservices los implementamos sobre aplicaciones web por lo que se hace necesario tener un servidor como Tomcat o GlassFish para ejecutar la aplicacion web y adicionalmente publicar los servicios web, pero algunas veces solo necesitamos publicar el servicio web para realizar pruebas sin la necesidad un servidor web completo. Esto es ahora posible utilizando un Endpoint que se encarga de publicar el servicio web en una direccion especifica, la cual atiende los llamados al servicio, como tambien genera el WSDL el cual describe el servicio.
A continuación crearemos un servicio web llamado Calculadora el cual posee un metodo llamado sumar que recibe dos numero y retorna la suma de ellos.
Requisitos :
Implementar el WebService en Java :
package serviciosweb; import javax.jws.WebMethod; import javax.jws.WebService; @WebService public class Calculadora { @WebMethod public int sumar(int x, int y) { return x + y; } }
Crear el Publicador del WebService :
package serviciosweb; import javax.xml.ws.Endpoint; public class Publicador { public static void main(String[] args) { Calculadora calculadora = new Calculadora(); Endpoint endpoint = Endpoint.create(calculadora); endpoint.publish("http://localhost:4444/CalculadoraService"); } }
Compilar el WebService :
Publicar el Servicio Web :
http://localhost:4444/CalculadoraService?wsdl
Con esto ya tenemos publicado nuestro servicio web, sin necesidad de tener un servidor web como Tomcat o Glassfish, lo que permite realizar pruebas de una forma rapida.
Enlaces :
Entradas Relacionadas:
Muy interesante profe. No conocía el Endpoint. Había visto algo similar cuando me dió por leer un poco de Ruby pero no sabía que se podía hacer con Javita.
He estado buscado una forma sencilla de generar web services, este ejemplo me funciono perfectamente y muy adecuado. Quisiera saber que debo hacer para por ejemplo publicar este mismo ejemplo en un servidor tomcat.
Gracias.
La verdad que esto es buenisimo!!
No depender de Tomcat ni nada!!
Pero tengo un problema, solo se hace el bind para localhost, como hago para que escuche a PC’s remotas?
Gracias
Me respondo… poniendo http://0.0.0.0:4444/CalculadoraService
en lugar de http://localhost:4444/CalculadoraService