【问题标题】:Is it possible to add type when 'TypeNotFound' exception in SUDS raises?当 SUDS 中的“TypeNotFound”异常引发时,是否可以添加类型?
【发布时间】:2014-08-06 06:09:16
【问题描述】:

当我尝试加载 http://www.onvif.org/ver10/device/wsdl/devicemgmt.wsdl 时,会引发异常 Type not found: '(IPAddressFilter, http://www.onvif.org/ver10/schema/onvif.xsd, )'。有办法解决吗?

from suds.client import Client
client = Client('file:///home/web/www/wsdl/devicemgmt.wsdl')

附: WSDL 文件由我更改,只是在文件开头添加了指向http://www.onvif.org/ver10/schema/onvif.xsd 的直接链接。

P.P.S

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/suds/client.py", line 119, in __init__
    sd = ServiceDefinition(self.wsdl, s)
  File "/usr/local/lib/python2.7/dist-packages/suds/servicedefinition.py", line 58, in __init__
    self.paramtypes()
  File "/usr/local/lib/python2.7/dist-packages/suds/servicedefinition.py", line 137, in paramtypes
    item = (pd[1], pd[1].resolve())
  File "/usr/local/lib/python2.7/dist-packages/suds/xsd/sxbasic.py", line 63, in resolve
    raise TypeNotFound(qref)
suds.TypeNotFound: Type not found: '(IPAddressFilter, http://www.onvif.org/ver10/schema/onvif.xsd, )'

【问题讨论】:

    标签: python soap wsdl suds onvif


    【解决方案1】:

    尝试添加要导入的架构。

    from suds.client import Client
    from suds.xsd.doctor import ImportDoctor
    from suds.xsd.doctor import Import
    
    imp = Import('http://www.w3.org/2001/XMLSchema')      # the schema to import.
    imp.filter.add('http://www.onvif.org/ver10/schema')   # the schema to import into.
    d = ImportDoctor(imp)
    s = Client("http://www.onvif.org/ver10/device/wsdl/devicemgmt.wsdl", doctor = d)
    

    【讨论】:

    • 也许你知道我怎么能动态添加服务标签?
    • @Kin 不确定你的意思。你想在哪里添加标签?
    • 当您尝试运行某些服务时,例如GetDeviceInformation 它会引发异常Exception: No services defined。服务标签看起来像这样&lt;wsdl:service name="DeviceServices"&gt;&lt;wsdl:port binding="DeviceBinding" name="tds:DevicePort"&gt;&lt;soap:address location=""/&gt;&lt;/wsdl:port&gt;&lt;/wsdl:service&gt;,并向我们展示应该发送请求的目标设备。目前我是手动添加的
    • 你看过 Client.wsdl.add_children() 方法吗?
    • noupe,没有很好的泡沫描述......你能给一个描述或例子的链接吗?
    猜你喜欢
    • 1970-01-01
    • 2013-11-11
    • 1970-01-01
    • 1970-01-01
    • 2019-05-06
    • 2023-03-12
    • 2013-04-21
    • 2017-12-07
    • 1970-01-01
    相关资源
    最近更新 更多