我在Grails中有一个使用xfire插件发布的Web服务。这一切都很好,可以连接到没有问题。但我想修改请求和响应的格式。这可能吗?
示例结构是:
域类Person
,有很多Sibling
个。每个Sibling
都有Child
。
我的网络服务方法目前看起来像这样:
Person updatePerson(Person person) {
return Person.getById(person.id)
}
但是这产生了一个格式为:
的WSDLPerson
Person fields
Sibling
Sibling fields
Child
Sibling
Sibling fields
等等。
我不想接受此格式的数据,或以该格式返回。有没有办法指定哪些字段暴露给Web服务以及WSDL应该是什么样的,或者xfire是否是用于此的错误插件?
答案 0 :(得分:1)
我会回答这个问题作为它的创造者。 要排除某些域属性,请添加:
static xmlTransients = ['your_property_goes_here']
到您的域类。
但是,该插件不允许您直接控制WSDL的创建。
答案 1 :(得分:0)
我建议您查看Spring WS插件。它是围绕“契约优先”Web服务开发而设计的,因此您可以完全控制生成的WSDL。 Xfire,Axis和Metro插件都很棒,但根据我的经验,它们都面向代码优先,不允许直接控制生成的接口/输出。