gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 15:37:15 25 4
gpt4 key购买 nike

我知道有一些 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com