6

如果 SOAP Web 服务通过 SoapUI 运行良好(生成正确的 SOAP 响应),而使用不同的 API/框架在 Java 中构建 Web 服务客户端来调用该 Web 服务面临不同的问题,那么认为该 Web 服务稳定是否安全问题出在消费者方面吗?

我在这里问一个一般性的问题,我已经问了一个可能太长而无法阅读的详细问题。我对这个概念比我的实际实现更感兴趣,所以如果你可以在不参考我较长的帖子的情况下回答我的问题,请这样做。

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

我在 ESB 中构建 SOAP 响应,我的问题是我使用了在 WSDL 中定义但不在模式中定义的命名空间。SoapUI 收到响应并将其显示给我(使用错误的命名空间);如果我打开响应验证选项,这个问题本可以避免。

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

4

3 回答 3

11

SoapUI 是一个很棒的产品。然而,使它成为一个伟大产品的原因之一是它非常容忍定义不明确的 Web 服务。在我们的产品中,我们处理了大量的 Web 服务,并且对我们产品中的一个问题的常见评论是“它在 SoapUI 中运行良好”。我们已经学会了 SoapUI 将容忍各种损坏的 web 服务的艰难方式。因此,总而言之,使用 SoapUI 并不能证明您的 Web 服务定义良好。

于 2013-03-03T21:46:02.600 回答
2

WS-I 测试工具可以检查您的 Web 服务是否符合Web 服务互操作性配置文件。如果您的服务遵循 WS-I 基本配置文件,并且 SoapUI 可以调用它,那么问题肯定出在消费者方面。

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

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

于 2013-03-03T20:09:05.933 回答
0

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

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

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

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

于 2013-03-03T21:11:08.867 回答