SoapUI和Java Web服务客户端的比较

6
如果一个SOAP Web服务在SoapUI中工作良好(生成正确的SOAP响应),但使用不同的APIs/框架构建Java Web服务客户端调用此Web服务时遇到不同的问题,那么可以安全地认为这个Web服务是稳定的,而问题来自消费者端吗?
我在这里提出了一个通用的问题,我已经问了一个详细的问题,可能太长了。我更加关心概念而不是实际的实现,所以如果你可以回答我的问题而不参考我的长篇文章,请回答。
更新:我意识到,即使WSDL符合WS-I标准,通过SoapUI正确地运行,这仍然不足以断定Web服务没有故障。正如@jtahlborn所说,SoapUI对于有故障的Web服务非常宽容,它很容易让你相信你的Web服务工作得很好,这也是我遇到的情况。
我正在ESB中构建SOAP响应,我的问题是我使用了在WSDL中定义但在模式中未定义的命名空间。SoapUI接收到响应并将其显示给我(带有错误的命名空间); 如果我打开响应验证选项,就可以避免这个问题。
值得一提的是,在我创建的Java Web服务客户端中测试我的Web服务时,响应无法加载到输出对象中(当我尝试访问输出对象时出现了NullPointerException错误)。这是由于命名空间问题导致的,一旦我修复了命名空间,它就开始正常工作了。
3个回答

11

SoapUI是一个非常棒的产品。然而,使它成为一个伟大的产品的其中一个原因是它非常容忍定义不良的 Web 服务。在我们的产品中,我们处理了许多 Web 服务,经常有人评论我们产品的问题是“在 SoapUI 中运行良好”。我们已经通过艰苦的方式学到,SoapUI将容忍各种不良的 Web 服务。因此,总之,使用 SoapUI 并不意味着您的 Web 服务定义良好。


即使它符合WS-I标准? - Aziz Alfoudari
@abstractpaper - 我并不是在争论你的 Web 服务是否定义良好,只是 SoapUI 并不能证明什么。 - jtahlborn
1
我的意思是,如果我的 Web 服务在 SoapUI 和 WS-I 兼容的同时是功能正常的,这是否足以得出结论,即我的 Web 服务没有问题? - Aziz Alfoudari
@jtahlborn 我也变得很好奇了! - flup
@flup - 你对什么感到好奇? - jtahlborn
显示剩余2条评论

2

我进行了WS-I测试并通过了,但是使用CXF和JAX-WS的两个不同的消费者在调用它时遇到了奇怪的问题。 - Aziz Alfoudari
防火墙或代理问题可能是原因吗?我认为服务本身没问题。 - flup

0

很可能是消费者(客户端)有问题...如果使用wsdl2java生成客户端,那么它很可能存在漏洞...如果您正在使用一些有效的特殊功能(符合w3c标准),那么不要感到惊讶...生成的客户端有时会出现这种情况...甚至用于生成Java类或生成Web服务的库也充满了漏洞...

许多已知且经常使用的库不支持许多功能...(我不想透露名称--但wsdl4java并不完美)。

如果您正在使用安全性或其他功能,则服务器和客户端都更容易出现漏洞 :)

也许如果您告诉我们问题所在,我们可以帮助您...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接