SoapUI与Jav​​a Web服务客户端

时间:2013-03-03 19:57:47

标签: java web-services soap soapui webservice-client

如果SOAP Web服务通过SoapUI运行良好(产生正确的SOAP响应),那么使用不同的API /框架在Java中构建Web服务客户端来调用此Web服务面临着不同的问题,是否可以安全地考虑这一点网络服务稳定,问题来自消费者方面?

我在这里问一个通用的问题,我已经问了一个详细的问题,这个问题可能太久了。我对这个概念的兴趣超过了我的实际实现,所以如果你能回答我的问题而不参考我的长篇文章,请做。

更新: 我已经意识到即使WSDL符合WS-I并且它通过SoapUI正常运行,这仍然不足以得出结论Web服务没有被破坏。正如@jtahlborn所说,SoapUI非常容忍破坏的Web服务,它很容易让你相信你的Web服务工作正常,这就是我的情况。

我正在ESB中构建SOAP响应,我的问题是我使用了在WSDL中定义的命名空间,但没有在架构中定义。 SoapUI收到了响应并向我显示(使用错误的命名空间);如果我turned on the response validation option可以避免这个问题。

还值得一提的是,在我为测试我的Web服务而创建的Java Web服务客户端中,无法将响应加载到输出对象中(当我尝试访问输出对象时出现NullPointerException错误),这是由于命名空间问题,一旦修复了命名空间,它就开始正常工作。

3 个答案:

答案 0 :(得分:11)

SoapUI是一款出色的产品。然而,使其成为优秀产品的一个原因是它非常容忍定义不明确的Web服务。在我们的产品中,我们处理很多的web服务,并且经常对我们产品中的问题发表评论是“它在SoapUI中工作正常”。我们已经学会了SoapUI能够容忍各种破坏的Web服务的艰难方式。因此,总而言之,使用SoapUI 证明您的Web服务是明确定义的。

答案 1 :(得分:2)

WS-I testing tools来检查您的网络服务是否符合Web Services Interoperability个人资料。如果您的服务遵循WS-I基本配置文件,并且SoapUI可以调用它,则问题肯定在消费者方面。

编辑:好吧,或两者之间...

SoapUI可以检查您的wsdl是否符合WS-I,请参阅http://www.soapui.org/SOAP-and-WSDL/working-with-wsdls.html

答案 2 :(得分:0)

消费者(客户端)很可能是错误的...如果客户端是使用wsdl2java生成的,那么很有可能在其中出现错误......如果你使用的是一些有效的特殊功能(符合w3c) )然后不要感到惊讶...生成的客户端有时会这样做...甚至一些用于生成java类或库以生成Web服务的库都充满了bug ...

已知和常用的库不支持很多东西......(我不想给出名字 - 但是wsdl4java并不完美)..

如果您正在使用安全性或某些东西......在服务器端和客户端都有更高的机会出现错误:)

也许如果你告诉我们什么问题我们可以帮助你......