Grails和使用SOAP Web服务

时间:2011-03-28 08:15:40

标签: java web-services grails soap soap-client

作为Grails的新手,我想知道人们在Grails项目中使用什么来使用Web服务。那么系统的客户端呢?有什么建议?我看到人们使用GroovyWS,Spring-WS等。什么是好用且易于使用?

3 个答案:

答案 0 :(得分:4)

GroovyWS非常易于使用,并且有很好的文档我肯定会推荐它。

答案 1 :(得分:1)

在此处使用Grails CXF插件。需要:

  1. classloader变通方法 - DynamicClientFactoryit更改了当前的类加载器;
  2. 并手动编写WS调用。
  3. 除此之外,消费者代码相当渺茫。

    编辑:抱歉,不再是这个,我不确定我是不是打破NDA了:

    #1:

    def arrayOfLong = objectFactory.createArrayOfLong(XXX, ids)
    result = client.invoke(methodName, arrayOfLong as Object[])
    

    #2:

    def dcf = DynamicClientFactory.newInstance()
    def classLoader = Thread.currentThread().getContextClassLoader()
    
    // create a WS client
    // and assign end point address to it
    def client = dcf.createClient(WSDL_URL, classLoader)
    client.conduit.target.address.setValue(endpointUrl)
    
    // reacquire classloader because 'createClient' changes it
    def changedClassLoader = Thread.currentThread().getContextClassLoader()
    def objectFactory = changedClassLoader.
        loadClass(FACTORY_CLASS_NAME).newInstance()
    

答案 2 :(得分:1)

使用Grails 1.3.7我使用WS-Client Grails plugin使用自己的网络服务。它实际上基于GroovyWS,而GroovyWS又使用CXF。它至少在我的简单场景中非常容易使用,我只从后端Web服务获得字符串。我不知道它如何适用于复杂的数据类型。

我以前从未使用或创建过webservice,但是在前端使用该插件和后端的Grails CXF plugin我在两天内在我的grails应用程序之间进行了SOAP讨论。你真的不需要直接使用非常好的ws-client插件使用CXF或GroovyWS。速度(发展)和简单。