1

我在 Grails 中有一个 Web 服务,使用 xfire 插件发布。一切都很好,可以连接完全没有问题。但我想修改请求和响应的格式。那可能吗?

示例结构是:

领域类Person,有很多Siblings。每个Sibling都有一个Child

我的网络服务方法目前看起来像这样:

Person updatePerson(Person person) {
  return Person.getById(person.id)
}

但这会产生一个格式如下的 WSDL:

Person
   Person fields
       Sibling
           Sibling fields
           Child
       Sibling
            Sibling fields

等等等等

我不想接受这种格式的数据,也不想以那种格式返回。有没有一种方法可以指定哪些字段暴露给 Web 服务以及 WSDL 应该是什么样子,或者 xfire 是不是为此使用的错误插件?

4

2 回答 2

1

我会作为它的创造者来回答这个问题。要排除某些域属性,请添加:

static xmlTransients = ['your_property_goes_here']

到您的域类。

但是,该插件不允许您直接控制 WSDL 的创建。

于 2009-08-08T17:09:02.233 回答
0

我建议查看Spring WS插件。它是围绕“合同优先”的 Web 服务开发而设计的,因此您可以完全控制生成的 WSDL。Xfire、Axis 和 Metro 插件都很棒,但根据我的经验,它们都面向代码优先,不允许直接控制生成的接口/输出。

于 2009-08-09T05:26:23.723 回答