2012-05-09 10 views
6

私は一般的なウェブサービスの質問をしています。私はあなたが私の混乱をクリアするのを助けることができると期待しています。ウェブサービス - SOAPと "XML over HTTP"

私は、ホストが「XML over HTTPサービス」と呼んでいるWebサービスを使用しています。彼らは、このサービスはSOAPサービスではないが、応答はSOAPエンベロープ応答であると主張している。サービスは、現在、HTMLフォームのポストを介して呼び出されています。 SOAPベース -

<FORM name=TestForm action=http://intranet/TheWSMethod enctype="text/plain" method="POST"> 
    <TEXTAREA name=Data rows=22 cols=91 type="text" style="position: absolute; left: 78; top: 69; width:752px; height:330px"></TEXTAREA> 
    <INPUT type=xml> 
    <INPUT type=submit value="Transmit"> 
</FORM> 

応答

HTML:ここではHTMLフォームと応答がありますか?

<?xml version="1.0" encoding="UTF-8" ?> 
<soapenv:Fault xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> 
    <faultcode>soap-env:Server</faultcode> 
    <faultstring>9001</faultstring> 
    <faultactor>/TheWSMethod</faultactor> 
    <detail> ... </detail> 
</soapenv:Fault> 

ホストは私の混乱が始まるところで、このプロセスにはWSDLが存在しないことを私に伝えます。

私の質問は、既存のWSDLがあるかどうかです。 (つまり、彼らは私の足を引っ張っているのか、私が尋ねていることを理解していないのですか)、あるいはこのタイプのサービスにWSDLを持たないことは可能ですか?

答えて

14

SOAPはHTTPを介したXMLの特殊化であり、投稿したレスポンスは実際にはSOAP応答(SOAP fault実際)のように見えます。

これは大きな誤解のようですので、あなたの足を引っ張っているとは思わないでください。質問を別の方法で試してみてください。

これが実際に100%SOAP Webサービスである場合、SOAP WebサービスのWSDLを持つことは必須ではありません。

Webサービスは、ネットワーク経由で一連の操作を公開する単なるアプリケーションです。これらの操作を呼び出すには、名前が何であるか、どのパラメータが期待されているか、パラメータのタイプなどを知る必要があるため、client stubの構築方法を理解してください。

これは、Webサービスを文書化する必要があることを意味します。そうしないと、Webサービスと対話するコードを記述する方法がわかりません。この文書はWord文書またはPDFであり、そのクライアントスタンドからクライアントを手動で構築することができます。または文書にはWSDLというファイルがあります。 Word文書をツールにフィードして、自動的にスタブ配管コードを生成することができます。

WSDLはWebサービスを記述します.WSDLはWSDLとは別に存在しますが、WSDLとは別に存在します。

+1

ありがとうございます。これは自分の混乱の多くを解決するのに役立ちます。 – user891859

1

WSDLは、主にWebサービスのロケータです。オプションで、Webサービスにアクセスするためのツールを使用して、クライアントクラスを生成することもできます。