有一个groovy xml-rpc请求构建器吗?

时间:2014-06-30 17:09:51

标签: grails groovy xml-rpc

我正在尝试向另一个使用xml-rpc的webapp发送请求。到目前为止,我已经将groovy的XML-RPC module添加到我的项目中。我说实话是因为我在互联网上看到的例子很少。如果我的想法是正确的,我只想快速地知道。以下是问题:

  1. 如果我想发送一个对象和我的请求,这意味着我必须将该对象转换为xml格式,如here所述,这是正确的吗?

  2. 如果#1中的答案是肯定的,是否有一种常规方法将对象转换为#1中的所述格式?

  3. 我的对象在呈现为XML时看起来像这样。这不是我所知道的正确格式,但我正在寻找能够改变它的东西,正如#2链接中所解释的那样。非常感谢我指出正确的道路。

    <myObject id="1">
       <date>2014-07-01 00:00:00.0 PHT</date>
       <isCancelled>true</isCancelled>
       <isPosted>true</isPosted>
       <isReceived>false</isReceived>
       <issueTo>some bloke</issueTo>
       <items>
          <item id="1" />
          <item id="2" />
       </items>
    </myObject>
    

1 个答案:

答案 0 :(得分:0)

如果您真的知道自己想要什么,那么您可以使用自定义XML生成编写自己的编组器。

@Log4j
class YourCustomMarshaller implements ObjectMarshaller<XML> {

    @Override
    boolean supports(Object object) {
        return object instanceof YourCustomDomain
    }

    @Override
    void marshalObject(Object object, XML converter) throws ConverterException {
        ...
    }
}

并在BootStrap.groovy init部分注册。

import grails.converters.JSON
class BootStrap {

    def init = { servletContext ->
        ...
        JSON.registerObjectMarshaller(new YourCustomMarshaller())
        ...
    }

    def destroy = {
    }
}

此外,您可以尝试搜索插件。比如这样 https://grails.org/plugins/search?q=rpc

第一个链接是http://grails.org/plugin/xmlrpc,但我不确定这是你需要的。