如何在Spyne中设置端口的名称和绑定?



我通过Django编写了一个Spyne的Web服务。我正在模拟一些应用程序,所以我需要实现确切的接口。我在原始应用程序中有以下port定义:

< wsdl:service name = "SendSmsWebServiceImplService" >
< wsdl:port binding = "tns:SendSmsWebServiceImplServiceSoapBinding" name = "SendSmsWebServiceImplPort" >
< soap:address location = "http://192.168.100.31:8181/smsgateway/sendsms" / >
< / wsdl:port >
< / wsdl:service >

这就是我在模拟器中拥有的:

< wsdl:service name = "SendSmsWebServiceImplService" >
< wsdl:port name = "SendSmsWebService" binding = "tns:SendSmsWebService" >
< soap:address location = "http://127.0.0.1:5000/smsgateway/services/SendSms/" / >
< / wsdl:port >
< / wsdl:service >

我正在尝试为port设置namebinding.我正在使用模块spyne.application.Application来实现主应用程序。设置这些属性的方法是什么?

若要更改端口和绑定的名称,可以设置应用程序类的"name"属性,如下所示:

app = Application(services=[YourService],
name='serviceName',
tns='your.tns',
in_protocol=Soap11(validator='lxml'),
out_protocol=Soap11()
)

但请注意,如果在"服务"中公开了多个服务,则参数 Spyne 将为其分配相同的端口/绑定名称。 如果您尝试使用轴服务,这可能会导致问题。

如果是这种情况,您可能需要更多 spyne.application.Application 类的实例。

还有另一种方法可以重命名这些属性。您只需要将 wsdl 另存为 xml 文件,重命名所需的所有属性,然后在 Web 服务器上发布 xml 以代替生成的 wsdl。 将此 xml 文件(带有完整的 url(提供给您的 Web 服务客户端应该可以正常工作。

希望对您有所帮助。

相关内容

  • 没有找到相关文章

最新更新