调试GroovyWS。获取实际生成的XML

时间:2010-01-18 16:42:05

标签: xml soap groovy groovyws

我在Grails应用程序中使用GroovyWS连接到外部SOAP服务器。

我希望看到GroovyWS生成的实际XML,因为我在没有任何有用信息的情况下收到错误。

我知道我可以使用wireshark或类似的东西,但确实应该有一种更简单的方法。

打印对象只打印Java Object @ ... string。

1 个答案:

答案 0 :(得分:1)

GroovyWS在内部使用Apache CXF,因此您应该能够使用其日志记录拦截器来完成这项工作。从GroovyWS文档剪切和粘贴温度示例,以下测试脚本打印请求和响应SOAP消息:

@Grab(group='org.codehaus.groovy.modules', module='groovyws', version='0.5.2')
import groovyx.net.ws.WSClient

import org.apache.cxf.interceptor.LoggingInInterceptor
import org.apache.cxf.interceptor.LoggingOutInterceptor

proxy = new WSClient("http://www.w3schools.com/webservices/tempconvert.asmx?WSDL", this.class.classLoader)
proxy.initialize()

println proxy.client.outInterceptors.add(new LoggingOutInterceptor())
println proxy.client.inInterceptors.add(new LoggingInInterceptor())
result = proxy.CelsiusToFahrenheit(0)
println "You are probably freezing at ${result} degrees Farhenheit"

请参阅http://cxf.apache.org/docs/debugging-and-logging.html