我是soapUI 3.5的新手。我尝试了一些wsdl,它获得了对jboss 4.2.1上部署的Web服务的安全性。
在soapUI上运行测试时。它给了我
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Header/>
<env:Body>
<env:Fault>
<faultcode>env:Server</faultcode>
<faultstring>org.jboss.ws.core.CommonSOAPFaultException: Required element did not contain a wsu:id.</faultstring>
</env:Fault>
</env:Body>
</env:Envelope>
有什么建议吗?
提前致谢
答案 0 :(得分:1)
我遇到了同样的问题。我在JBoss Forum
中找到了解决方法JBoss WS客户端在元素中生成一个wsu:Id属性,SoapUI不会自动插入。这是我的默认SoapUI请求的样子(使用XML选项卡查看/编辑):
<soapenv:Header/>
<soapenv:Body>
<ser:getCutOffTime/>
</soapenv:Body>
如果您在请求的正文中包含“虚拟”wsu:Id,则可以使用SoapUI。请务必包含命名空间:
<soapenv:Header/>
<soapenv:Body wsu:Id="element-1-1272320911598-1522000" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<ser:getCutOffTime/>
</soapenv:Body>
这解决了我的问题。我正在使用JBoss 5.0。
答案 1 :(得分:0)
我不相信这是一个安全例外。我相信您的WSDL格式错误或与soapUI测试工具不兼容。其他测试工具或客户端库也可能会抛出异常。这个WSDL是自动生成的吗?应该是......
答案 2 :(得分:0)
您运行的服务器不喜欢您的请求。可能是因为SoapUI使用了构建样本?作为占位符,或者也许是“lorem ipsum”的价值观。用有效数据替换它们,它应该通过。
如果您有一个可以与该服务器通信的应用程序,通常可以将这些请求复制/粘贴到SoapUI中。
此外,如果您无法捕获这些示例请求,请在PC上运行Fiddler,它将充当代理,然后它将为您提供捕获示例有效负载的简便方法。 SoapUI也可以做到这一点,但Fiddler让它变得非常简单(自动配置你的WinInet以将自己用作代理)。