0

私はsoaplib(python)を使用してWebサービスサーバーを作成しています。

SOAP クライアントが簡単に Web サービスを使用できるように、メソッドを実装して wsdl を生成しました。

Web サービスを検証するために soapUI を使用していますが、soapUI から応答が正しくないと表示されます。

XML の何が問題なのかはわかりましたが、soapLib を正しい方法で使用させることはできません...

ここに私のPythonClassがあります:

class AgentSoapManager(SimpleWSGISoapApp):
    """ Interface for web services """
    @soapmethod(String, _returns = String)
    def get_streaming_url(self, application_identifier):
        returns "rtsp://192.168.10.224:51081/camera8"

私はWSGIServerを使用しています。

これが私の呼び出しです(soapUIによるとこれは問題ありません):

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:agen="agent.soap.AgentSoapManager.AgentSoapManager">
   <soapenv:Header/>
       <soapenv:Body>
            <agen:get_streaming_url>
                 <application_identifier>0800275ec350_jaguar_8</application_identifier>
            </agen:get_streaming_url>
       </soapenv:Body>
</soapenv:Envelope>

これが私のWebサービスからの間違った応答です

<SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP-ENV:Body>
        <get_streaming_urlResponse>
            <get_streaming_urlResult xsi:type="xs:string">
                 rtsp://192.168.10.224:51081/camera8
             </get_streaming_urlResult>
        </get_streaming_urlResponse>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

エラーは次のとおりです。

line-1: Missing part with name [{agent.soap.AgentSoapManager.AgentSoapManager}get_streaming_urlResponse

これが私が見つけた応答であり、soapUIによるとこれは問題ありません

<SOAP-ENV:Envelope xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:agen="agent.soap.AgentSoapManager.AgentSoapManager">
    <SOAP-ENV:Body>
        <agen:get_streaming_urlResponse>
            <get_streaming_urlResult>
                rtsp://192.168.10.224:51081/camera8
            </get_streaming_urlResult>
        </agen:get_streaming_urlResponse>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
4

1 に答える 1

0

Soap lib を Spyne に変更して仕事をしました。機能させるために変更することはあまりなく、今回はリクエスト/レスポンスはそのままで問題ありません

于 2014-08-29T13:05:07.930 に答える