2012-05-16 20 views
13

Solo necesito un cliente SOAP para hacer llamadas remotas, pero soy un novato Groovy. De acuerdo con Groovy documentation, la biblioteca de SOAP Groovy estándar está en desuso. En cambio, los documentos lo dirigen a una biblioteca más nueva: GroovyWS.¿Qué es la biblioteca SOAP estándar para usar en groovy?

Desafortunadamente, GroovyWS tiene una advertencia que dice que el proyecto está inactivo y luego lo señala a Groovy WSLite.

Groovy WSLite en realidad todavía parece estar en desarrollo activo, pero no muy 'Groovy-ish' en comparación con las 2 bibliotecas anteriores. ¿Es wslite lo que todos están usando?

+0

Mis requisitos para el proyecto que dio lugar a esta pregunta ha cambiado, así que en realidad no tratan las bibliotecas sugeridas por @ John-wagenleitner pero su respuesta pareció el más completo como una respuesta a mi pregunta. ¡Gracias a todos por las respuestas! – matmer

Respuesta

11

creo que se encontraría tanto GroovyWS y groovy-wslite (y HTTP Builder) están en uso como bibliotecas de cliente maravilloso jabón en los proyectos y la decisión fue probablemente uno de los cuales funcionaba uno y que uno tenía la API/acercarse al usuario preferido (en ese orden).

Mi consejo sería dar una oportunidad a GroovyWS si te gusta la API que proporciona y su capacidad para representar por proxy un documento WSDL y ver si funciona para los servicios que necesitas para interactuar. Las cosas no han cambiado mucho en el mundo SOAP, así que no me preocuparía demasiado por la forma en que se ha actualizado recientemente. Si funciona y terminas, si experimentas algunos problemas para los que no puedes encontrar ayuda fácilmente, probaré las alternativas.

groovy-wslite (descargo de responsabilidad: soy el autor) tiene como objetivo proporcionar una alternativa ligera (en términos de dependencias) que intercambia la conveniencia del análisis/proxys WSDL para que sea más fácil tener más control sobre la llamada soap resultante sin tener para profundizar en los aspectos internos de algún marco subyacente de Java como CXF. Algunos prefieren tener las características adicionales de una biblioteca construida sobre un marco como este, mientras que otros prefieren la simplicidad del otro enfoque.

Lo que hace maravilloso tan grande es lo fácil que es integrar con Java. Entonces, como otros ya han señalado, puede integrarse con clientes de servicios web de Java como Spring WS, CXF y JAX-WS con bastante facilidad.

2

Me mantendría alejado de los groovyws, apesta. Después de mirar alrededor, finalmente elegí la solución de usar servicios web de primavera y servicios web basados ​​en contratos.

El cliente instancia objetos de comando con un método toXml() que genera el XML de solicitud de jabón. Luego use WebServiceTemplate para enviar a Endpoint.

Para el servidor, utilizamos puntos finales de servicios web de primavera. Analizar el xml entrante es un juego de niños, y no es necesario ordenar el XML en un objeto, ya que GPathResult resultante de un XmlSlurper es totalmente manejable. Nuestro servidor se ejecuta en la parte superior de Grails, por lo que aprovechamos el plugin springs grails, lo que hace que la creación de Endpoints sea aún más fácil.

Sin embargo, hay una advertencia. El plugin springws para griales está desactualizado. Los servicios web de Spring ahora son de la versión 2.x y el plugin springws viene con 1.4.x, creo. Sin embargo, es muy fácil de usar sin el complemento, y creo que actualizar el complemento a la API más reciente no es difícil.

Además, si quiere hacer MTOM, sprints se complica un poco más, porque necesita profundizar en el manejo de mensajes. Pude hacer algunas cosas bastante avanzadas de seguridad ws con los servicios web de primavera, sin embargo, no hay problema.

De lo contrario, usaría cxf (maneja muy bien MTOM), si quiere seguir con jax-ws et al. La sobrecarga es probablemente más alta, porque todos los proxies y pojos generados dinámicamente. Además, no está dirigido por contrato, lo cual es una gran ventaja para nosotros.

http://predic8.com/groovy-web-services-jax-ws.htm

http://cxf.apache.org/docs/how-do-i-develop-a-client.html

+0

FWIW, 4 años después, y migrando lejos de SOAP, le daría una oportunidad a groovy wslite, para clientes de servicios web residuales. Al construir puntos finales del servidor, tendría que estudiar el campo de nuevo. Por favor, toma mi respuesta en el contexto de 2012. – loteq

0

Parece que usted ha hecho el yourslef tarea! Groovy WS Lite parece estar trabajando actualmente. Si quieres ver spring-ws en acción usando Groovy, aquí hay un proyecto test suite que había creado en github.

Cuestiones relacionadas