Servicios Web con Java SE 6.0 (Parte 2)
Creando un Servicio Web muy simple
Para ilustrar la creación de Servicio Web XML con el JAX-WS 2.0 incluido en Java SE 6.0 emplearemos el clásico ejemplo de Hola Mundo (posteriormente abordaremos otros ejemplos) el cual luce así:
Listado de Hello.java
Nótese que luce como una clase Java normal pero con un par de adiciones: En primer lugar importamos javax.jws.WebService, lo cual es necesario para marcar la clase Hello con la anotación @WebService. Con esto habilitamos la clase para que pueda ser publicada como un Servicio Web de una sola operación, en nuestro caso, la del método sayHello.
El siguiente paso es generar los artefactos de despliegue para dicha clase, para ello utilizamos la herramienta wsgen, incluida en Java SE 6.0, a la cual pasamos como argumento la clase hello.Hello compilada:
>javac hello/Hello.java >wsgen -cp . hello.Hello
Las clases de los artefactos de implementación se generan dentro de un sub-paquete de nombre "jaxws", en nuestro caso hello.jaxws.
Con todo lo anterior ya tenemos un sencillo Servicio Web casi listo para ser desplegado en algún contenedor Java EE, no obstante podemos probarlo sin un contenedor... Pero eso lo veremos en la siguiente ocasión.
- willyxoft's blog
- Inicie sesión o regístrese para enviar comentarios
Comentarios
Webservices
Bastante bueno willy, tengo poco conocimiento en Webservices y esto es un buen comienzo. Muy útil.
Error
Holas esta bueno el tuto, he querido implementarlo y al momento de generar con el wsgen -cp . hello.Hello me sale este error
see stacktrace below for more information.
com.sun.tools.internal.ws.processor.modeler.ModelerException: [failed to localize] A web service endpoint could not be found()
at com.sun.tools.internal.ws.processor.modeler.annotation.WebServiceAP.onError(WebServiceAP.java:215)
at com.sun.tools.internal.ws.processor.modeler.annotation.WebServiceAP.buildModel(WebServiceAP.java:322)
at com.sun.tools.internal.ws.processor.modeler.annotation.WebServiceAP.process(WebServiceAP.java:256)
at com.sun.mirror.apt.AnnotationProcessors$CompositeAnnotationProcessor.process(AnnotationProcessors.java:60)
at com.sun.tools.apt.comp.Apt.main(Apt.java:454)
at com.sun.tools.apt.main.JavaCompiler.compile(JavaCompiler.java:258)
at com.sun.tools.apt.main.Main.compile(Main.java:1102)
at com.sun.tools.apt.main.Main.compile(Main.java:964)
at com.sun.tools.apt.Main.processing(Main.java:95)
at com.sun.tools.apt.Main.process(Main.java:85)
at com.sun.tools.apt.Main.process(Main.java:67)
at com.sun.tools.internal.ws.wscompile.WsgenTool.buildModel(WsgenTool.java:204)
at com.sun.tools.internal.ws.wscompile.WsgenTool.run(WsgenTool.java:112)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.sun.tools.internal.ws.Invoker.invoke(Invoker.java:105)
at com.sun.tools.internal.ws.WsGen.main(WsGen.java:41)
error: compilation failed, errors should have been reported
he querido hacerlo desde netbeans y no me ha funcionado tampoco sera que me dan una manito please gracias
Falta indicar el end point
Creo que falta indicar el end point donde se desplegara el web service como parámetros de la anotación
@WebService(endpointInterface= "hello.Hello")
Muchas Gracias por el tutorial esta muy interesante
En este ejemplo como puedo
En este ejemplo como puedo poder correr este WS ?
Donde se generan los wsdl ?