2009-05-09 16 views
0

SimpleDB documentationには、この例のListDomainsメソッドのリクエストが含まれています。署名、タイムスタンプ、AWSAccessKeyId及びバージョンサブ要素が存在すること 注WS-Securityを使用しないSOAPのAmazon SimpleDB WSDLは正しいですか?

<SOAP-ENV:Body> 
    <ListDomainsRequest xmlns=" http://sdb.amazonaws.com/doc/2007-11-07"> 
     <Signature>SZf1CHmQnrZbsrC13hCZS061ywsEXAMPLE&lt;</Signature> 
     <Timestamp>2009-02-16T17:39:51.000Z</Timestamp> 
     <AWSAccessKeyId>1D9FVRAYCP1VJS767E02EXAMPLE</AWSAccessKeyId> 
     <Version>2007-11-07</Version> 
     <Action>ListDomains</Action> 
    </ListDomainsRequest> 
    </SOAP-ENV:Body> 

WSDLはListDomainsためにこの定義を使用する:

<xs:element name="ListDomains"> 
    <xs:complexType> 
     <xs:sequence> 
      <xs:element name="MaxNumberOfDomains" type="xs:int" minOccurs="0"/> 
      <xs:element name="NextToken" type="xs:string" minOccurs="0"/> 
     </xs:sequence> 
    </xs:complexType> 
</xs:element> 
... 
<wsdl:operation name="ListDomains"> 
    <soap:operation soapAction="ListDomains"/> 
    <wsdl:input> 
     <soap:body use="literal"/> 
     </wsdl:input> 
     <wsdl:output> 
      <soap:body use="literal"/> 
     </wsdl:output> 
    </wsdl:operation> 

署名、タイムスタンプ、AWSAccessKeyId及びバージョン情報がListDomainsにありません定義。

AWSの顧客サポートは、すでにこのように設計され、これを調査し、意見:

"The WSDL will continue to cover only application-level elements, as it is a cleaner approach, fitting better with the long-term "SOAP with WS-Security" envelope/body model."

は、例えば、要求は正しいですか?たとえば、DelphiでWSDLをインポートしても、承認要素のコードは生成されません。 SOAPヘッダにその情報を提供についてアマゾンのドキュメント会談 - -

答えて

0

まあ、承認要素が実際に奇数ビット....

でも笑えるであるWSDLの一部ではないように思われるまだ<SOAP-ENV:Body>要素に明示的に記述しています....

これらの追加要素をDelphiコードまたはWSDL自体に手動で追加するとどうなりますか?あなたはSimpleDBサービスがそれに満足するようにそれを微調整できますか?

Marc

+0

はい、調整が可能ですが、WSDLが変更されるたびに変更を再度適用する必要があります。 AWS開発者フォーラムで(古い)WSDLのハッキングされたバージョンへのリンクが見つかりました。誰かが私と同じ問題を抱えていました。もっと洗練されたソリューションがあるかもしれません。 – mjn

関連する問題