我正在尝试将WSDL导入到SOAP-UI项目中 - 这是一个用于测试SOAP调用的简单工具。当我尝试导入wsdl时,我收到以下错误:
WSDLException(在/ wsdl:definitions / portType / wsdl:operation [1] / wsdl:input): faultCode = UNBOUND_PREFIX:无法确定'nrns的命名空间:getDynamicsUploadQueueRequest
从检查WSDL我发现定义区域下没有xmlns:nrns
声明。我在一个论坛中读到我可以将WSDL重新保存到磁盘并更正WSDL。但是,我是一个极端的SOAP菜鸟,我不知道该定义应该是什么。我认为,如果我只是将以下内容添加到定义区域,它应该解决问题。有人知道我会用这些问号代替吗?我的方法完全错了吗?
xmlns:nrns="???"
我不拥有或无法控制WSDL。下面是WSDL和XML供参考。
https://apps.net-results.com/soap/v1/NRAPI.wsdl
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions name='NRAPI' targetNamespace='https://apps.net-results.com/soap/v1'
xmlns:nrtypens="https://apps.net-results.com/soap/v1/NRAPI.xsd"
xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/'
xmlns:xsd='http://www.w3.org/2001/XMLSchema'
xmlns:soapenc='http://schemas.xmlsoap.org/soap/encoding/'
xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/'
xmlns='http://schemas.xmlsoap.org/wsdl/'>
答案 0 :(得分:3)
这是WSDL中的错误。似乎“nrns”意味着https://apps.net-results.com/soap/v1
。请注意,这是targetNamespace
元素中的WSDL的definitions
。
所以只需添加
xmlns:nrns='https://apps.net-results.com/soap/v1'
在definitions
元素中,你应该没问题。
答案 1 :(得分:1)
命名空间是一种将元素关联到特定类型以避免名称冲突的方法。请参阅此处http://www.w3schools.com/xml/xml_namespaces.asp
你几乎可以???
,这应该可以解决你的问题。它不一定是任何有效的URL,因为它永远不会在互联网上使用该URL并检查其有效性。
但是,我建议您从其所有者处获得更正后的WSDL
,并在以后使用其他内容时,您可能会遇到有关名称空间不匹配的问题,从而浪费大量时间。暂时继续您的测试,您可能会在<wsdl:definition>
标记中添加任何内容,例如:
xmlns:nrns="http://fakeurl.com"
P.S。玩你的想象力:))