我只是需要一个SOAP客户端来进行远程调用,但我有点像一个Groovy新手。根据Groovy文档,不推荐标准的Groovy库。相反,文档将指向一个较新的库:GroovyWS。
不幸的是,GroovyWS有一个警告说该项目处于休眠状态,然后它将指向Groovy WSLite。
Groovy WSLite实际上似乎仍在积极开发中,但与前面的2个库相比,并不是很“Groovy”。很难理解每个人都在使用什么?
发布于 2012-05-19 16:57:31
我想您会发现GroovyWS和格罗维特 (和HTTP Builder)都在作为Groovy客户端库在项目中使用,并且这个决定可能是哪一个起作用了,哪一个具有用户所喜欢的API/方法(按这个顺序)。
我的建议是,如果您喜欢它提供的API,以及它代理一个WSDL文档的能力,并且看看它是否适合您需要与之交互的服务,那么可以尝试一下GroovyWS。在SOAP世界中,事情并没有发生太大的变化,所以我不会太担心它最近被更新了。如果它有效,那么你就完成了,如果你经历了一些你无法轻易找到帮助的问题,那么我会尝试其他的选择。
格罗维特 (免责声明:我是作者)的目标是提供一种轻量级(就依赖关系而言)替代方法,它可以方便地进行WSDL解析/代理,从而更容易对结果的soap调用进行更多的控制,而不必深入研究一些底层Java框架(如CXF )的内部结构。有些人更喜欢在这样的框架之上构建库的附加特性,而另一些人可能更喜欢其他方法的简单性。
使Groovy如此伟大的一点是,与Java集成是多么容易。因此,正如其他人已经指出的,您可以很容易地与Spring、CXF和JAX等Java服务客户端集成。
发布于 2012-05-16 22:40:17
我会一直躲在那里,这太糟糕了。环顾四周后,我最终选择了使用spring服务和契约驱动的web服务的解决方案。
客户端使用生成soap请求XML的toXml()方法实例化命令对象。然后使用WebServiceTemplate到sendToEndpoint。
对于服务器,我们使用spring服务端点。解析传入的xml是子操作,您不需要将XML编组到对象中,因为XmlSlurper产生的XmlSlurper是完全可管理的。我们的服务器运行在grails之上,因此我们利用了springws grails插件,使端点的创建更加容易。
不过,有一个警告。grails的springws插件已经过时了。springws服务现在是2.x版,我认为springws插件附带了1.4.x。但是,没有插件很容易使用,我认为将插件升级到较新的api并不难。
另外,如果您想做MTOM,springws会变得更加复杂,因为您需要更深入地研究消息处理。我能够用spring web服务做一些相当高级的ws-安全的事情,但是,没有问题。
否则,我将使用cxf (很好地处理MTOM ),如果您想坚持使用jax-ws等。过海可能更高,因为所有动态生成的代理和pojos。而且,这不是合同驱动的,这对我们来说是一个很大的好处。
http://predic8.com/groovy-web-services-jax-ws.htm
http://cxf.apache.org/docs/how-do-i-develop-a-client.html
发布于 2012-05-18 03:21:21
看来你已经做好作业了!Groovy似乎正在运行一个。如果您希望看到spring使用Groovy进行操作,那么下面是我在github中创建的一个测试套件项目。
https://stackoverflow.com/questions/10621648
复制相似问题