web-services - 在 Grails 中使用 Web 服务的最佳方式是什么?

标签 web-services grails soap

我知道有一些 Grails 的 Web 服务插件,其中一些看起来没有维护。我有一个 jar,其中包含从 wsdl 生成的所有 stub ,现在我需要开始集成。哪个插件最适合这个?此外,Web 服务使用 SOAP,而不是 REST。

最佳答案

我知道您的问题是关于消费插件的问题,但我从未使用过其中一个 Grails-WS 插件,所以我无法在那里发表评论。相反,如果您的 stub 与 JAXB 编码兼容,您可以使用 Spring Web Services 项目。您只需在 BuildConfig.groovy 中添加一个依赖项导入适当的 jar 。

http://static.springsource.org/spring-ws/sites/2.0/reference/html/client.html

因此,您只需定义一些 JAXB 编码器/解码器 bean 和 Web 服务处理程序。如果您指定自己的连接处理程序或拦截器,您可以从上面的文档中获得所需的详细信息并定义超时和安全性。

myJaxb2Marshaller(org.springframework.oxm.jaxb.Jaxb2Marshaller) {
    classesToBeBound = ['my.class.Class1','my.class.Class2']
}

myWebServiceMessageFactory(org.springframework.ws.soap.saaj.SaajSoapMessageFactory)

myWebServiceTemplate(org.springframework.ws.client.core.WebServiceTemplate, ref('myWebServiceMessageFactory')) {
    marshaller = ref('myJaxb2Marshaller')
    unmarshaller = ref('myJaxb2Marshaller')
}

此时,您可以使用 Grail 的依赖注入(inject)来使用 WebServiceTemplate在您的 Grails 代码中:
class myService {
    def myWebServiceTemplate

    void myMethod {
        ...
        Class1 myRequestObject = new Class1(data:myData)
        Class2 myResponseObject = myWebServiceTemplate.marshalSendAndReceive(mySoapEndpoint, myRequestObject)
        ...
    }
}

关于web-services - 在 Grails 中使用 Web 服务的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8580783/

相关文章:

java - Sonar Java Web客户端: Authors by line null

javascript - 如何在javascript中使用回调函数

web-services - 具有业务用户界面的 Web 服务测试框架

mysql - 使用 grails 将数据从一个数据库表导入到另一个数据库表

java - 通过 Java/SOAP 的亚马逊产品广告 API

delphi - OpToSoapDomComv.TRefCache.FNodes 包含对不存在的 XMLNodes 的引用

web-services - Weblogic (java webapp) 作为客户端以 HTTPS 模式与服务器对话

java - 如何合并两个 Hibernate 查询?

grails - Grails Spring安全核心允许通过url进行身份验证

java - CXF 客户端 SOAP 消息格式化