1

axis2 のサーバー上で実行されている、テストする Web サービスがいくつかあります。

Web サービスを使用してサード パーティから受け取る必要のある xml データを受け取りました。その xml データは、Web サービスの wsdl に従って適切にフォーマットされています。

テストするために:(sudsで指定されたaxis2.pyテストファイルに従います)

url = 'http://localhost:8080/axis2/services/{0}?wsdl'.format('myWebService')
print 'url=%s' % url
client = Client(url)
print client
with open("input.xml") as f:
    inputXml = f.read()
print client.service.myWebserviceRequest(inputXml)

次のエラーメッセージが表示されます。

urllib2.URLError: <urlopen error [Errno 10061] No connection could be made becau
se the target machine actively refused it>

ステートメントで私が見る限りprint Client、それは suds が xml フォームではなく python フォームでオブジェクトを待っているということです。(それが axis.py コードの残りの部分で示唆されていることです)

しかし、私の場合、データは既にxmlでフォーマットされています。リクエストにxmlとして直接入力する方法を知っていますclient.service.myWebserviceRequestか?

(axis2のwebserviceにアクセスするので接続の問題ではありませんgetVersion)

EDIT1:の出力print client statement

Service ( myWebService ) tns="ws.myCompany.com"
   Prefixes (2)
      ns2 = "myData.ws.myCompany.com"
      ns3 = "ws.myCompany.com"
   Ports (1):
      (MyServiceSSOAP12port_http)
         Methods (1):
            sendMyInformation(ns2:DATA_HEADER DATA_HEADER, ns2:OTHER_CONTENT OTHER_CONTENT, )
         Types (1):
            WSExceptionType

私を困惑させているのは、 suds Client がフォームのサービスを公開していることですsendMyInformation((ns2:DATA_HEADER DATA_HEADER, ns2:OTHER_CONTENT OTHER_CONTENT,)

一方、私の wsdl では、提供するデータは次のとおりです。

<xs:element name="WHOLE_CONTENT">
    <xs:complexType>
        <xs:sequence>
            <xs:element ref="DATA_HEADER"/>
            <xs:element ref="OTHER_CONTENT"/>
        </xs:sequence>
    </xs:complexType>
</xs:element>
4

2 に答える 2

3

答えを探しているときにこの質問を見たところ、

あなたはそれを解決しましたか?あなたは以下のようなものを探していますか

メッセージ注入 (診断/テスト?)¶ サービス API は、メッセージ/応答注入を提供します。

送信される SOAP メッセージを挿入するか、SOAP サーバーから返されたかのように処理される応答または障害を挿入するには、単に __inject キーワード引数を指定します。

サービスを呼び出すとき。例えば:

raw soap メッセージの送信:

print client.service.test(__inject={'msg':message})
GP

于 2012-07-24T09:17:54.023 に答える