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

发布于 2024-08-18 05:59:00 字数 187 浏览 10 评论 0原文

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

我想查看由 GroovyWS 生成的实际 XML,因为我收到错误但没有任何有用的信息。

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

打印对象只是打印 Java Object@... 字符串。

I'm using GroovyWS in a Grails app to connect to an external SOAP server.

I'd like to see the actual XML that is generated by GroovyWS since I'm getting errors without any useful information.

I know I can use wireshark or something similar, but there really should be an easier way.

Printing the object just prints the Java Object@... string.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

桃扇骨 2024-08-25 05:59:00

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

GroovyWS uses Apache CXF internally, so you should be able to use its logging interceptors to do the trick. Cutting and pasting the temperature example from the GroovyWS docs, the following test script prints both the request and response SOAP messages:

@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"

See http://cxf.apache.org/docs/debugging-and-logging.html

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文