Webservice

Buenas noches
disculpen la molestia estoy haciedo una aplicacion de escritorio ya la tengo lista pero ahora tengo que agregarle un webservice a esta aplicacion algun consejo de como puedo integrarle el webservice

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ezamudio

?

Supongo que necesitas que la aplicación de escritorio consuma un web service... A partir de Java 6 ya puedes consumir algunos servicios web sin necesidad de herramientas externas, usando el programa wsimport que viene incluido con el JDK. Busca info acerca de eso.

Hago énfasis en que con eso puedes consumir algunos servicios porque me he dado de topes con algunos servicios mal hechos, que son la mayoría. Un servicio hecho en PHP o .NET es casi garantía de que te va a dar algún problema, o que el cliente de servicio generado por wsimport no será suficiente porque el servicio seguramente te devolverá una bonita cadena en XML que todavía tienes que parsear a mano (para lo cual también hay herramientas, pero sinceramente, qué hueva estar parseando XML, se supone que un maldito web service te debe ahorrar esa talacha).

Mis clientes de web service casi siempre los hago con Axis 2, o si de plano están muy mal hechos y/o tienen una implementación que ni siquiera es estándar sino que alguien decidió publicar un servicio a mano y por lo mismo tiene mil detallitos que no se apegan a estándares y que impiden que uses una herramienta estándr para consumirlo, entonces uso groovy-wslite.

La ventaja de Axis 2 es que te genera una clase que es muy fácil de usar (aunque no es thread-safe pero eso no es un gran problema ya que lo sabes), y puedes ver fácilmente qué métodos tiene el servicio, y qué parámetros recibe cada método y qué devuelve, por lo que es muy fácil consumirlos (a menos que te encuentres con el típico servicio en .NET que devuelve un vil String). Y se pueden configurar algunos parámetros comunes como el timeout de conexión, timeout esperando respuesta, deshabilitar el encoding   (que viene habilitado por default pero IIS no lo entiende), hasta algunas opciones para seguridad que son útiles para cuando tienes que consumir un servicio con https que tiene un certificado auto-firmado y no quieres debilitar la seguridad de la JVM entera.

La ventaja de groovy-wslite es que da completo control de lo que envías y recibes, es digamos que de más bajo nivel que Axis 2, pero por lo mismo es tan útil en esos casos en que el servicio que quieres consumir no es estándar. Ahí tienes que saber exactamente qué enviar y qué esperar en la respuesta, pero pues con el tipado dinámico de groovy es fácil armar los mensajes y extraer datos de las respuestas.