Giriş
WSDL dosyasını gözle okumak biraz zor. SoapUI gibi bir program ile görsel olarak bakmak daha kolay.
wsdl dosyasının anatomisi hakkında aldığım notlar aşağıda.wsdl dosyasının parçalarını gösteren bir şekil burada
Mantıksal Bölümler
wsdl dosyası mantıksal olarak şöyle bölümleniyor.
Message Definition Bölümü - Interface metodların girdi, çıktı parametrelerinin tanımları
Şeklen şöyledir
Şeklen şöyledir.
Şeklen şöyledir
Şeklen şöyledir
Operation Etiketi
Örnek
Message Etiketi
Örnek
Örnek
Interface Implementation Detayları
Service Etiketi
<service>...</service> etiketi ile verilen servisin nasıl bir port'a hizmet edeceği tanımlı. Port'u Java olarak düşünürsek arayüz (interface) tanımı, binding'i ise gerçekleştiren sınıf olarak hayal edebiliriz.
Binding Etiketi
<binding>...</binding> etiketi ile verilen servisin hangi protokolü kullanacağı ve metodları olacağı tanımlı.
Burada style="document" yazan kısma dikkat etmek lazım. Üretilen WSDL Document/Literal Bare veya Document/Literal Wrapped formatında olabilecek şeklinde ayarlanabiliyor. Hiç bir şey belirtilmezse Document/Literal Wrapped formatı kullanılıyor.
Document/Literal Wrapped ile SOAP mesajında çağırılmak istenen metodun ismi ve parametreleri de belirtilmiş oluyor. JAX-WS ile açık bir şekilde tanımlamak istenirse aşağıdaki gibi tanımlamak lazım.
WSDL dosyasını gözle okumak biraz zor. SoapUI gibi bir program ile görsel olarak bakmak daha kolay.
wsdl dosyasının anatomisi hakkında aldığım notlar aşağıda.wsdl dosyasının parçalarını gösteren bir şekil burada
wsdl dosyası mantıksal olarak şöyle bölümleniyor.
Message Definition Bölümü - Interface metodların girdi, çıktı parametrelerinin tanımları
Şeklen şöyledir
<wsdl:message name="IHealthCheckService_GetDiskCFreeMb_InputMessage">
<wsdl:part name="parameters" element="tns:GetDiskCFreeMb"/>
</wsdl:message>
Interface Definition BölümüŞeklen şöyledir.
<wsdl:portType name="IHealthCheckService">
<wsdl:operation name="GetDiskCFreeMb">
<wsdl:input message="tns:GetDiskCFreeMb_InputMessage" wsam:Action=""/>
<wsdl:output message="tns:OutputMessage" wsam:Action=""/>
</wsdl:operation>
</wsdl:portType>
Binding BölümüŞeklen şöyledir
<wsdl:binding name="" type="">
<soap:binding transport=""/>
<wsdl:operation name="">
<soap:operation style="document" soapAction=""/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
Service Bölümü - Interface ImplementationŞeklen şöyledir
<wsdl:service name="">
<wsdl:port name="" binding="">
<soap:address location=""/>
</wsdl:port>
</wsdl:service>
Interface Definition DetaylarıOperation Etiketi
Örnek
<operation name="convertLead">
<documentation>convert a set of leads</documentation>
<input message="tns:convertLeadRequest"/>
<output message="tns:convertLeadResponse"/>
<fault message="tns:UnexpectedErrorFault" name="UnexpectedErrorFault"/>
</operation>
input girdi output ise çıktı parametereleri belirtir. Parametreler message etiketi içinde tanımlıdır.Message Etiketi
Örnek
<message name="convertLeadRequest">
<part element="tns:convertLead" name="parameters"/>
</message>
<message name="convertLeadResponse">
<part element="tns:convertLeadResponse" name="parameters"/>
</message>
Element EtiketiÖrnek
<element name="convertLead">
<complexType>
<sequence>
<element name="leadConverts" type="tns:LeadConvert"
minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</complexType>
</element>
Interface Implementation Detayları
Service Etiketi
<service>...</service> etiketi ile verilen servisin nasıl bir port'a hizmet edeceği tanımlı. Port'u Java olarak düşünürsek arayüz (interface) tanımı, binding'i ise gerçekleştiren sınıf olarak hayal edebiliriz.
<binding>...</binding> etiketi ile verilen servisin hangi protokolü kullanacağı ve metodları olacağı tanımlı.
Burada style="document" yazan kısma dikkat etmek lazım. Üretilen WSDL Document/Literal Bare veya Document/Literal Wrapped formatında olabilecek şeklinde ayarlanabiliyor. Hiç bir şey belirtilmezse Document/Literal Wrapped formatı kullanılıyor.
Document/Literal Wrapped ile SOAP mesajında çağırılmak istenen metodun ismi ve parametreleri de belirtilmiş oluyor. JAX-WS ile açık bir şekilde tanımlamak istenirse aşağıdaki gibi tanımlamak lazım.
Hiç yorum yok:
Yorum Gönder