2012-05-09 10 views
6

Mam ogólne pytanie dotyczące usług internetowych i mam nadzieję, że pomożesz mi wyjaśnić moje zamieszanie na ten temat.Usługi sieciowe - SOAP a "XML przez HTTP"

Pracuję z usługą internetową, którą host nazywa "usługą XML przez HTTP". Twierdzą, że ta usługa NIE jest usługą SOAP, ale odpowiedź jest odpowiedzią na kopertę SOAP. Usługa jest obecnie wywoływana za pośrednictwem formularza HTML; tutaj jest formularz HTML i odpowiedź:

HTML:

<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> 

RESPONSE - SOAP użytkowników?

<?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> 

Gospodarz mówi mi, że nie ma nie WSDL dla tego procesu, czyli tam, gdzie zaczyna się mój zamieszanie.

Moje pytanie brzmi, czy istnieje/powinien istnieć WSDL? (tzn. czy ciągną moją nogę, czy też nie rozumieją, o co pytam) czy jest możliwe, aby nie mieć WSDL dla tego typu usługi?

Odpowiedz

14

SOAP to tylko specjalizacja XML przez HTTP, a odpowiedź, którą wysłałeś, rzeczywiście wygląda jak odpowiedź SOAP (właściwie SOAP fault).

To wygląda na duże nieporozumienie, więc nie zakładaj, że ciągnie za nogę. Spróbuj zadać pytanie w inny sposób.

Jeśli chodzi o WSDL, jeśli jest to w rzeczywistości usługa sieciowa SOAP 100%, należy pamiętać, że nie jest obowiązkowe posiadanie WSDL dla usługi sieciowej SOAP.

Usługa sieciowa to po prostu aplikacja, która udostępnia zestaw operacji w sieci. Aby wywoływać te operacje, musisz wiedzieć, jakie są ich nazwy, jakie parametry oczekują, jakie typy mają parametry itp., Abyś wiedział, jak zbudować swój client stub.

Oznacza to, że usługa internetowa musi być udokumentowana, inaczej nie wiedziałbyś, jak napisać kod, który wchodzi w interakcję z usługą internetową. Ta dokumentacja może być dokumentem Word lub PDF i można ręcznie zbudować klienta od tego (co wymaga napisania dużej ilości kodu instalacyjnego dla tego twojego klienta). LUB dokumentacją może być plik WSDL, który w przeciwieństwie do pliku PDF lub Dokument Worda może zostać podany do narzędzia automatycznie generującego kod pośredniczący.

Dokument WSDL opisuje usługę WWW - i dobrze jest ją podać - ale usługa internetowa istnieje niezależnie od WSDL.

+1

Dziękuję za wyjaśnienie. To pomaga wyjaśnić wiele z mojego własnego zamieszania. – user891859

1

WSDL to głównie lokalizator do usługi sieciowej. Opcjonalnie można wygenerować z niego klasy klienckie za pomocą jakiegoś narzędzia, aby uzyskać dostęp do usługi sieciowej.