Jumat, 20 November 2009

Contoh format WSDL dan Schema untuk Method yang mengembalikan List of Object

Misalkan kita ingin membuat sebuah SOAP Web Service dengan spesifikasi Method yang ingin dipanggil mengembalikan type List of Object. Berikut adalah contoh format Schema dan WSDL yang akan kita gunakan untuk kasus diatas.

Untuk mempermudah pengerjaan kita, coba gunakan Neatbeans 6.7 untuk proses parsing WSDL dan generasi Code:

1. Buatlah sebuah file webservice.xsd yang berisi struktur tipe yang akan kita gunakan

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema xmlns:ns1="http://blog.jdevelop.eu/soapwebservices.xsd" xmlns:tns="soapwebservices.jdevelop.eu"
           xmlns:soap-enc="http://schemas.xmlsoap.org/soap/encoding/"
           xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="soapwebservices.jdevelop.eu" version="1.0">
   
    <xs:element name="inputString" type="xs:string"/>
   
    <xs:element name="listObatResponse">
        <xs:complexType>
            <xs:sequence>   
                <xs:element name="Obat" minOccurs="0" maxOccurs="unbounded">
                    <xs:complexType>
                        <xs:all>
                            <xs:element name="id_obat" type="xs:string"/>
                            <xs:element name="nama_obat" type="xs:string"/>
                        </xs:all>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
   
</xs:schema>


2. Buatlah sebuah file webservice.wsdl yang merupakan spesifikasi Web Service yang akan kita buat

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<definitions xmlns:ns1="soapwebservices.jdevelop.eu" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
       xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/"
       xmlns:ns="http://schemas.xmlsoap.org/soap/encoding/" name="SOAPws" targetNamespace="soapwebservices.jdevelop.eu">
      
    <types>
        <xsd:schema>
             <xsd:import namespace="soapwebservices.jdevelop.eu" schemaLocation="webservices.xsd"/>
        </xsd:schema>
    </types>
   
    <message name="doListObatResponse">
        <part name="return" element="ns1:listObatResponse"/>
    </message>
   
    <message name="doInputString">
        <part name="inputString" element="ns1:inputString"/>
    </message>
   
    <portType name="SOAPws">
        <operation name="getListObat">
            <input message="ns1:doInputString"/>
            <output message="ns1:doListObatResponse"/>
        </operation>
    </portType>
   
    <binding name="SOAPWebServicesPortBinding" type="ns1:SOAPws">
        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
        <operation name="getListObat">
            <soap:operation soapAction="urn:http://blog.jdevelop.eu/services/getListObat"/>
            <input>
                <soap:body use="literal"/>
            </input>
            <output>
                <soap:body use="literal"/>
            </output>
        </operation>
    </binding>
   
    <service name="SOAPService">
        <port name="WebServices" binding="ns1:SOAPWebServicesPortBinding">
            <soap:address location="http://blog.jdevelop.eu:80/services"/>
        </port>
    </service>
</definitions>

3. Setelah kita membuat kedua file diatas, kemudian bukalah Netbeans 6.7 Anda. Lalu, buatlah sebuah Project baru => Web Application.

4. di Icon project Anda, klik kanan dan pilih add => web service from wsdl

5. Lanjutkan proses dengan mengarahkan file webservice.wsdl yang sudah Anda buat pada bagian sebelumnya.


6. Setelah itu, barulah tercipta sebuah Object Bernama listObatResponse yang mempunyai atribut List of Obat.


7. Sampai disini Anda sudah berhasil membuat sebuah Web Service Kosong yang mengembalikan List Of Object, sisanya Anda tinggal membuat Logic/Implementasinya dan Mempublishnya di Server Glassfish atau Tomcat.


--
Mohon koreksi jika ada yang salah...:)


Tidak ada komentar:

Posting Komentar