簡體   English   中英

Python soaplib“ Hello World”程序-參數和類型未顯示在客戶端上

[英]Python soaplib “Hello World” program - Parameters and types not showing up on client

我正在嘗試運行soaplib Hello World程序:

import soaplib
from soaplib.core.service import rpc, DefinitionBase
from soaplib.core.model.primitive import String, Integer
from soaplib.core.server import wsgi
from soaplib.core.model.clazz import Array
from soaplib.core.service import soap


class HelloWorldService(DefinitionBase):
    @soap(String,Integer,_returns=Array(String))
    def say_hello(self,name,times):
        results = []
        for i in range(0,times):
            results.append('Hello, %s'%name)
        import pdb; pdb.set_trace() 
        return results

if __name__=='__main__':
    try:
        from wsgiref.simple_server import make_server
        soap_application = soaplib.core.Application([HelloWorldService], 'tns')
        wsgi_application = wsgi.Application(soap_application)
        server = make_server('localhost', 7789, wsgi_application)
        server.serve_forever()
    except ImportError:
        print "Error: example server code requires Python >= 2.5"

我在使用瀏覽器和簡單的suds客戶端連接到服務時遇到問題。 我從此處的最高答案中使用了代碼,以獲取我的小型Web服務方法的列表以及它們的參數和類型。 我得到的結果並不特別令人鼓舞:

say_hello(None: say_hello)

因此看來,我無法正確調用該函數的原因是它的參數和類型似乎沒有注冊:但是,據我所知,事實並非如此。 我特別傻眼,因為這是soaplib網站上介紹的hello world程序。

我在這里和其他地方都進行了搜索,但似乎在任何地方都找不到類似的問題。 有什么想法嗎?

我已經嘗試過soaplib“ Hello world”示例 如果您像以前那樣from soaplib.core.service import soap添加from soaplib.core.service import soap它將起作用。

我已經安裝了soaplibsuds使用pip install

$ pip freeze | grep -e'soaplib\|suds'
soaplib==2.0.0-beta2
suds==0.4

似乎soaplib被重構為rpclib ,被spyne取代。 它對項目沒有信心。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM