1

サードパーティの Axis Web サービスへの SOAP 呼び出しを行う単純な .NET アプリがあります。HTTP トラフィックをトレースすると、リクエストは問題ないように見えますが、「レスポンスは整形式の XML ではありません」という例外が発生します。XML を逆シリアル化できないように見えるため、戻りオブジェクトは null です。

wsdl 内のさまざまな名前空間宣言に関する 1 つの質問。これらの宣言のいくつかは、もはや存在しない URL/ドメインを指しています。これにより問題が発生する可能性はありますか?

wsdl ドキュメントから:

<wsdl:definitions targetNamespace="http://domaindoesntexist.com/"  
xmlns:apachesoap="http://xml.apache.org/xml-soap"  
xmlns:impl="http://domaindoesntexist.com/"  
xmlns:intf="http://domaindoesntexist.com/"  
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"  
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"  
xmlns:xsd="http://www.w3.org/2001/XMLSchema">

犯罪データが削除された HTTP 応答の例:

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/xml;charset=utf-8
Transfer-Encoding: chunked
Date: Fri, 05 Jun 2009 13:54:59 GMT

7cb
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<someMethod xmlns="http://test.com/services/myservice/">
</someMethod>
</soapenv:Body>
</soapenv:Envelope>
0
4

3 に答える 3

1

私の経験では、名前空間の URL は実際に存在する URI である必要はありません。一貫性が求められるため、検証のために内部 XML スキーマを構築できます。開発者がそこに行ってチェックアウトできるように、名前空間の定義をその場所にホストすることを目的としていましたが (私は信じています)、人々は怠惰になりました。

実際、後者の点については、私はかなり間違っているかもしれません。

于 2010-05-24T22:44:43.650 に答える
0

同様の問題が発生し、Wiresharkトレースを調べたところ、XMLペイロードにいくつかのヘッダーを挿入しているプロキシサーバーがあることがわかりました。

Webサービスがxmlを読み込もうとしています

「コンテンツタイプ:text / xmlで;のcharset = UTF-8ヴァリ:、のUser-Agent-エンコーディングを受け入れ接続:近い転送エンコード:チャンク2rZ3fnB2rMzDjipXgQz8ObOcEczeOIO74sa17YK5hrPkt62qce12BItOmuvPrC / WD8N3xZzBeBceBbiAA0IlsR2aXxd479Es7wO9va2cGpF / cc284gI.K5FXbOR5PUPx00EqNRjCdbdU4fv / JXN2alGDzGVlgCnRK5 / 6DJlAkcED2011-06-08T15:35:21.505 Z」

明らかにロードされません。

私の場合、完全なtcpストリーム

POST /ls/ws/auth HTTP / 1.1

ユーザーエージェント:Mozilla / 4.0(互換性、MSIE 6.0、MS Webサービスクライアントプロトコル2.0.50727.3615)

コンテンツタイプ:text / xml; charset = utf-8

SOAPAction: ""

亭主: ??????

コンテンツ-長さ:487

期待:100-続行

接続:Keep-Alive

2PUldqLs2KqUkJryFiZPQJI.D6RCixeMu443SLd7dCF2qrzws0E2JYatTqm8wD2CuFrSVHEjvJHIXfiLy6w9yBagentfp093.0.1.9019HTTP/1.0 200 OK

日付:2011年6月8日水曜日15:35:21 GMT

サーバー:Apache-Coyote / 1.1

コンテンツタイプ:text / xml; charset = utf-8

変更:Accept-Encoding、User-Agent

Xキャッシュ:dgtproxy1.skybroadband.com.phからのMISS

接続:閉じる

.1

コンテンツタイプ:text / xml; charset = utf-8

変更:Accept-Encoding、User-Agent

接続:閉じる

転送エンコーディング:チャンク

2rZ3fnB2rMzDjipXgQz8ObOcEczeOIO74sa17YK5hrPkt62qce12BItOmuvPrC / WD8N3xZzBeBceBbiAA0IlsR2aXxd479Es7wO9va2cGpF / cc284gI.K5FXbOR

于 2011-06-09T08:15:37.777 に答える
0

これらの宣言のいくつかは、もはや存在しない URL/ドメインを指しています。これにより問題が発生する可能性はありますか?

もちろん。プロジェクトで Web サービスを更新しようとしましたか?

于 2009-06-09T21:44:10.970 に答える