我在 Grails 应用程序中使用 GroovyWS 连接到外部 SOAP 服务器。
我想看看 GroovyWS 生成的实际 XML,因为我在没有任何有用信息的情况下遇到错误。
我知道我可以使用 wireshark 或类似的东西,但确实应该有更简单的方法。
打印对象只打印 Java Object@... 字符串。
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"