SlideShare una empresa de Scribd logo
1 de 6
Membangun Aplikasi Web Service Sederhana
                          Menggunakan Apache AXIS 1.2
                                           (Gandhi Manalu)

1. Pengaturan AXIS
   Download file axis-bin-1_2_1.tar.gz dan ekstrak ke sebuah direktori tertentu (misalnya:
   E:LaboratoryJavaLibAxis_Home). Direktori tersebut akan disebut dengan nama Axis_Home.

2. Pengaturan Tomcat
   a) Buat sebuah folder baru dengan nama axis dalam folder webapps (D:Program FilesApache
      Software FoundationTomcat 5.5webappsaxis)
   b) Buat sebuah folder baru dengan nama WEB-INF di dalam folder axis (D:Program
      FilesApache Software FoundationTomcat 5.5webappsaxisWEB-INF)
   c) Buat sebuah folder baru dengan nama classes di dalam folder axisWEB-INF (D:Program
      FilesApache Software FoundationTomcat 5.5webappsaxisWEB-INFclasses)
   d) Kopikan file web.xml yang ada di direktori Axis_HomewebappsaxisWEB-INF
      (E:LaboratoryJavaLibAxis_HomewebappsaxisWEB-INF) ke folder WEB-INF yang dibuat
      pada langkah 2.b (D:Program FilesApache Software FoundationTomcat
      5.5webappsaxisWEB-INF)
   e) Kopikan folder Axis_HomewebappsaxisWEB-INFlib
      (E:LaboratoryJavaLibAxis_HomewebappsaxisWEB-INFlib) ke folder WEB-INF yang
      dibuat pada langkah 2.b (D:Program FilesApache Software FoundationTomcat
      5.5webappsaxisWEB-INFlib)

3. Pengaturan Lingkungan Kerja
   a) Edit Environment Variables (Control Panel -> System -> Advanced -> Environment Variables),
      tambahkan variable baru dengan nama AXIS_HOME dan valuenya adalah Axis_Home
      (misalnya: E:LaboratoryJavaLibAxis_Home).
   b) Buat juga variable dengan nama AXIS_LIB dan valuenya adalah %AXIS_HOME%lib
   c) Buat juga variable dengan nama AXISCLASSPATH dan valuenya adalah %AXIS_LIB
      %axis.jar;%AXIS_LIB%commons-discovery-0.2.jar;%AXIS_LIB%commons-logging-
      1.0.4.jar;%AXIS_LIB%jaxrpc.jar;%AXIS_LIB%saaj.jar;%AXIS_LIB%log4j-
      1.2.8.jar;
   d) Uji coba apakah Axis sudah berhasil diinstall:
      ◦ Restart Tomcat (pastikan berjalan di port 8080)
      ◦ Jalankan perintah java -cp %AXISCLASSPATH% org.apache.axis.client.AdminClient
           list
       ◦ Apabila ditampilkan isi dari sebuah file XML berarti instalasi Axis sudah berhasil dilakukan




Gandhi Manalu                  Web Service Sederhana Menggunakan AXIS 1.2                  1 dari 6 hal
4. Pembuatan WSDL
   Misalkan nama file WSDL adalah math.wsdl dengan isi seperti di bawah ini:
    <?xml version="1.0" encoding="UTF-8"?>
    <wsdl:definitions
    targetNamespace="http://MathService.praktikum.ie.gandhim.org"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:impl="http://MathService.praktikum.ie.gandhim.org"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">

    <wsdl:message name="addNumberResponse">
          <wsdl:part name="addNumberReturn" type="xsd:int"/>
    </wsdl:message>

    <wsdl:message name="addNumberRequest">
          <wsdl:part name="firstNumber" type="xsd:int"/>
          <wsdl:part name="secondNumber" type="xsd:int"/>
    </wsdl:message>

    <wsdl:portType name="MathHandler">
          <wsdl:operation
          name="addNumber"
          parameterOrder=
          "firstNumber secondNumber">
                <wsdl:input message="impl:addNumberRequest"
                name="addNumberRequest"/>
                <wsdl:output message="impl:addNumberResponse"
                name="addNumberResponse"/>
          </wsdl:operation>
    </wsdl:portType>

    <wsdl:binding
          name="MathServiceSoapBinding" type="impl:MathHandler">
          <wsdlsoap:binding style="document"
          transport="http://schemas.xmlsoap.org/soap/http"/>
          <wsdl:operation name="addNumber">
                <wsdl:input name="addNumberRequest">
                      <wsdlsoap:body

           encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                             namespace="http://MathService.praktikum.ie.gandhim.org"
                             use="literal"/>
                 </wsdl:input>
                 <wsdl:output name="addNumberResponse">
                       <wsdlsoap:body

          encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                            namespace="http://MathService.praktikum.ie.gandhim.org"
                            use="literal"/>
                </wsdl:output>
          </wsdl:operation>
    </wsdl:binding>

    <wsdl:service name="MathHandlerService">
          <wsdl:port


Gandhi Manalu                Web Service Sederhana Menggunakan AXIS 1.2        2 dari 6 hal
binding="impl:MathServiceSoapBinding"
          name="MathService">
          <wsdlsoap:address
                location="http://localhost:8080/axis/services/MathService"/>
          </wsdl:port>
    </wsdl:service>

    </wsdl:definitions>


   Supaya dapat diakses dari aplikasi yang berada di komputer selain komputer yang menyediakan
   service, ganti localhost pada WSDL dengan IP Address komputer penyedia service.

5. Pembuatan Client Stub
   Client Stub akan dihasilkan dari file WSDL yang telah dibuat pada langkah 4. Jalankan perintah
   java -cp .;%AXISCLASSPATH% org.apache.axis.wsdl.WSDL2Java math.wsdl
   Perintah di atas akan menghasilkan class-class yang berada di folder berupa package yang
   mengikuti name space WSDL, yaitu orggandhimiepraktikumMathService. File-file Client Stub
   yang dihasilkan adalah:
   • MathHandler.java
   • MathHandlerService.java
   • MathHandlerServiceLocator.java
   • MathServiceSoapBindingStub.java

   MathHandler.java merupakan interface yang berisi deklarasi method yang nantinya bisa dipanggil
   oleh Client (yang disediakan oleh Server). Isi dari MathHandler.java adalah sebagai berikut
    package org.gandhim.ie.praktikum.MathService;

    public interface MathHandler extends java.rmi.Remote {
        public int addNumber(int firstNumber, int secondNumber) throws
    java.rmi.RemoteException;
    }


   Untuk kemudahan, pindahkan folder orggandhimiepraktikumMathService beserta isinya ke
   sebuah folder, misalnya client, sehingga struktur foldernya menjadi
   clientorggandhimiepraktikumMathService.

6. Pembuatan Server Skeleton
   Server Skeleton juga dihasilkan dari file WSDL yang telah dibuat pada langkah 4. Jalankan perintah
   java -cp .;%AXISCLASSPATH% org.apache.axis.wsdl.WSDL2Java --server-side
   --skeletonDeploy true math.wsdl
   Perintah di atas akan menghasilkan class-class yang berada di folder berupa package yang
   mengikuti name space WSDL, yaitu orggandhimiepraktikumMathService. File-file Server
   Skeleton yang dihasilkan adalah:
   • MathHandler.java
   • MathHandlerService.java
   • MathHandlerServiceLocator.java
   • MathServiceSoapBindingImpl.java
   • MathServiceSoapBindingSkeleton.java


Gandhi Manalu                  Web Service Sederhana Menggunakan AXIS 1.2                  3 dari 6 hal
• MathServiceSoapBindingStub.java
   • deploy.wsdd
   • undeploy.wsdd
   File-file yang dicetak tebal merupakan file-file yang juga merupakan Client Stub.
   Untuk kemudahan, pindahkan folder orggandhimiepraktikumMathService beserta isinya ke
   sebuah folder, misalnya server, sehingga struktur foldernya menjadi
   serverorggandhimiepraktikumMathService.

   File MathServiceSoapBindingImpl.java merupakan implementasi dari semua metode-metode yang
   didefinisikan di WSDL. Isi dari file tersebut adalah sebagai berikut:

    package org.gandhim.ie.praktikum.MathService;

    public class MathServiceSoapBindingImpl implements
    org.gandhim.ie.praktikum.MathService.MathHandler{
        public int addNumber(int firstNumber, int secondNumber) throws
    java.rmi.RemoteException {
            return -3;
        }

    }


   Method addNumber hanya berisikan implementasi trivial. Tambahkan kode yang diperlukan ketika
   client merequest method tersebut. Karena method tersebut bertujuan untuk menjumlahkan kedua
   bilangan, maka implementasinya adalah sebagai berikut:
    package org.gandhim.ie.praktikum.MathService;

    public class MathServiceSoapBindingImpl implements
    org.gandhim.ie.praktikum.MathService.MathHandler{
        public int addNumber(int firstNumber, int secondNumber) throws
    java.rmi.RemoteException {
            return (firstNumber + secondNumber);
        }
    }


7. Kompilasi Client Stub
   Kompile semua file yang merupakan Client Stub yang berada di folder
   clientorggandhimiepraktikumMathService.

8. Kompilasi Server Skeleton
   Kopikan semua file *.java yang ada pada folder serverorggandhimiepraktikumMathService ke
   folder classes yang dibuat di langkah 2c.
   Kompile semua file *.javav yang sudah dikopi ke folder classes tersebut.

9. Deploy Service
   Kopi file deploy.wsdd yang ada pada folder serverorggandhimiepraktikumMathService ke
   folder WEB-INF yang dibuat di langkah 2b. Dan rename menjadi deployMath.wsdd. Kemudian
   jalankan Command Prompt, dan change directory ke folder WEB-INF yang dibuat di langkah 2b,
   kemudian jalankan perintah java -cp %AXISCLASSPATH%

Gandhi Manalu                 Web Service Sederhana Menggunakan AXIS 1.2                4 dari 6 hal
org.apache.axis.client.AdminClient deployMath.wsdd

   Hasilnya dapat dilihat pada gambar di bawah ini:




   Jalankan browser Anda, dan buka alamat http://localhost:8080/axis/servlet/AxisServlet. Apabila
   web service sudah berhasil di deploy, Anda akan melihat tampilan seperti gambar di bawah ini:




10. Menjalankan Client
    Sekarang akan dibuat aplikasi Client yang akan memanggil service yang disediakan tersebut. Untuk
    membuat client, buat sebuah file baru, misalnya MathClient di folder
    clientorggandhimiepraktikumMathService lalu ketikkan kode di bawah ini:
    package org.gandhim.ie.praktikum.MathService;

    import   org.apache.axis.client.Call;
    import   org.apache.axis.client.Service;
    import   org.apache.axis.encoding.XMLType;
    import   org.apache.axis.utils.Options;

    import javax.xml.namespace.QName;
    import javax.xml.rpc.ParameterMode;


Gandhi Manalu                 Web Service Sederhana Menggunakan AXIS 1.2                   5 dari 6 hal
public class MathClient
    {
        public static void main(String [] args)
        {
            try {
                Options options = new Options(args);

                    String endpointURL = options.getURL();
                    String textToSend;

                    args = options.getRemainingArgs();

                    Service   service = new Service();
                    Call      call    = (Call) service.createCall();

                call.setTargetEndpointAddress( new java.net.URL(endpointURL) );
                call.setOperationName( new QName("MathService", "addNumber") );
                call.addParameter( "firstNumber", XMLType.XSD_INT,
    ParameterMode.IN);
                call.addParameter( "secondNumber", XMLType.XSD_INT,
    ParameterMode.IN);
                call.setReturnType( org.apache.axis.encoding.XMLType.XSD_INT );

                Integer ret = (Integer) call.invoke( new Object[] { new Integer(1),
    new Integer(5)} );

                    System.out.println("Returned : " + ret.intValue() );
                } catch (Exception e) {
                    System.err.println(e.toString());
                }
        }
    }


   Hasilnya apabila aplikasi client dijalankan adalah seperti gambar di bawah ini:




                                          :: Akhir Tutorial ::


Gandhi Manalu                  Web Service Sederhana Menggunakan AXIS 1.2            6 dari 6 hal

Más contenido relacionado

Destacado

Activity3- Tomás Mingot High School. Pictorial Alphabet for Simplicity
Activity3-  Tomás Mingot High School. Pictorial Alphabet  for SimplicityActivity3-  Tomás Mingot High School. Pictorial Alphabet  for Simplicity
Activity3- Tomás Mingot High School. Pictorial Alphabet for Simplicity
Carlos Ajamil Royo
 
Steelers Basic Plays
Steelers Basic PlaysSteelers Basic Plays
Steelers Basic Plays
cmcmillion803
 
POLS 7050 HKBU/ MPA, HKBU Public Administration, HKBU/CASS - Ways To Optimize...
POLS 7050 HKBU/ MPA, HKBU Public Administration, HKBU/CASS - Ways To Optimize...POLS 7050 HKBU/ MPA, HKBU Public Administration, HKBU/CASS - Ways To Optimize...
POLS 7050 HKBU/ MPA, HKBU Public Administration, HKBU/CASS - Ways To Optimize...
gueste1a32de7
 
Texas S Ta R Chart
Texas S Ta R ChartTexas S Ta R Chart
Texas S Ta R Chart
jkearley
 
Presentacion Rider
Presentacion RiderPresentacion Rider
Presentacion Rider
guest6e4166
 
Page Rank 1
Page Rank 1Page Rank 1
Page Rank 1
manuel
 
Elförbrukning
ElförbrukningElförbrukning
Elförbrukning
swimp
 
Succession Planning By Vivek
Succession Planning By VivekSuccession Planning By Vivek
Succession Planning By Vivek
anshuvivek
 
Ilusiones Opticas(2)
Ilusiones Opticas(2)Ilusiones Opticas(2)
Ilusiones Opticas(2)
gueste6f836
 
Illustration Portfolio
Illustration PortfolioIllustration Portfolio
Illustration Portfolio
grantcodak.com
 
Compulink Core Presentation
Compulink Core PresentationCompulink Core Presentation
Compulink Core Presentation
Compulink
 

Destacado (20)

Activity3- Tomás Mingot High School. Pictorial Alphabet for Simplicity
Activity3-  Tomás Mingot High School. Pictorial Alphabet  for SimplicityActivity3-  Tomás Mingot High School. Pictorial Alphabet  for Simplicity
Activity3- Tomás Mingot High School. Pictorial Alphabet for Simplicity
 
Steelers Basic Plays
Steelers Basic PlaysSteelers Basic Plays
Steelers Basic Plays
 
Design Portfolio
Design PortfolioDesign Portfolio
Design Portfolio
 
POLS 7050 HKBU/ MPA, HKBU Public Administration, HKBU/CASS - Ways To Optimize...
POLS 7050 HKBU/ MPA, HKBU Public Administration, HKBU/CASS - Ways To Optimize...POLS 7050 HKBU/ MPA, HKBU Public Administration, HKBU/CASS - Ways To Optimize...
POLS 7050 HKBU/ MPA, HKBU Public Administration, HKBU/CASS - Ways To Optimize...
 
Texas S Ta R Chart
Texas S Ta R ChartTexas S Ta R Chart
Texas S Ta R Chart
 
Bulgaria
BulgariaBulgaria
Bulgaria
 
Presentacion Rider
Presentacion RiderPresentacion Rider
Presentacion Rider
 
Page Rank 1
Page Rank 1Page Rank 1
Page Rank 1
 
Elförbrukning
ElförbrukningElförbrukning
Elförbrukning
 
Urban area detection and segmentation using OTB
Urban area detection and segmentation using OTBUrban area detection and segmentation using OTB
Urban area detection and segmentation using OTB
 
Succession Planning By Vivek
Succession Planning By VivekSuccession Planning By Vivek
Succession Planning By Vivek
 
Ilusiones Opticas(2)
Ilusiones Opticas(2)Ilusiones Opticas(2)
Ilusiones Opticas(2)
 
Portfolio
PortfolioPortfolio
Portfolio
 
hawkeye Webinar: Increase Sales with Personalized URLs
hawkeye Webinar: Increase Sales with Personalized URLshawkeye Webinar: Increase Sales with Personalized URLs
hawkeye Webinar: Increase Sales with Personalized URLs
 
DI-fusion, english presentation
DI-fusion, english presentationDI-fusion, english presentation
DI-fusion, english presentation
 
Illustration Portfolio
Illustration PortfolioIllustration Portfolio
Illustration Portfolio
 
Trinity Ndt Training Brochure
Trinity Ndt Training BrochureTrinity Ndt Training Brochure
Trinity Ndt Training Brochure
 
EMS Denied 15 Minutes of Fame
EMS Denied 15 Minutes of FameEMS Denied 15 Minutes of Fame
EMS Denied 15 Minutes of Fame
 
Bleach 386
Bleach 386Bleach 386
Bleach 386
 
Compulink Core Presentation
Compulink Core PresentationCompulink Core Presentation
Compulink Core Presentation
 

Similar a Web Service Menggunakan Axis

Tutorial web service (web & client) with spring web services
Tutorial web service (web & client) with spring web servicesTutorial web service (web & client) with spring web services
Tutorial web service (web & client) with spring web services
muhammad arif nasution
 
Web mvc dengan java jsp seri 1
Web mvc dengan java   jsp seri 1Web mvc dengan java   jsp seri 1
Web mvc dengan java jsp seri 1
Zaenal Arifin
 
Maya surya
Maya suryaMaya surya
Maya surya
Andi Jo
 
Koneksi java mysql
Koneksi java mysqlKoneksi java mysql
Koneksi java mysql
djamalusman
 
Membuat mvc framework sederhana dengan php
Membuat mvc framework sederhana dengan phpMembuat mvc framework sederhana dengan php
Membuat mvc framework sederhana dengan php
Cahya Dwiana SN
 
Membuat aplikasi-rental-dengan-java-dan-my sql
Membuat aplikasi-rental-dengan-java-dan-my sqlMembuat aplikasi-rental-dengan-java-dan-my sql
Membuat aplikasi-rental-dengan-java-dan-my sql
Irwan Syah
 
Akses database dengan asp
Akses database  dengan aspAkses database  dengan asp
Akses database dengan asp
gierg
 
Kelompok 15
Kelompok 15Kelompok 15
Kelompok 15
alqod
 
Kelompok 15
Kelompok 15Kelompok 15
Kelompok 15
alqod
 

Similar a Web Service Menggunakan Axis (20)

Tutorial web service (web & client) with spring web services
Tutorial web service (web & client) with spring web servicesTutorial web service (web & client) with spring web services
Tutorial web service (web & client) with spring web services
 
Web mvc dengan java jsp seri 1
Web mvc dengan java   jsp seri 1Web mvc dengan java   jsp seri 1
Web mvc dengan java jsp seri 1
 
Maya surya
Maya suryaMaya surya
Maya surya
 
Cara Membuat Aplikasi Android Resep Masakan Sederhana Android-SQLite
Cara Membuat Aplikasi Android Resep Masakan Sederhana Android-SQLiteCara Membuat Aplikasi Android Resep Masakan Sederhana Android-SQLite
Cara Membuat Aplikasi Android Resep Masakan Sederhana Android-SQLite
 
Mari belajar vue js
Mari belajar vue jsMari belajar vue js
Mari belajar vue js
 
Koneksi java mysql
Koneksi java mysqlKoneksi java mysql
Koneksi java mysql
 
Koneksi java mysql
Koneksi java mysqlKoneksi java mysql
Koneksi java mysql
 
Presentation dyan
Presentation dyanPresentation dyan
Presentation dyan
 
Membuat mvc framework sederhana dengan php
Membuat mvc framework sederhana dengan phpMembuat mvc framework sederhana dengan php
Membuat mvc framework sederhana dengan php
 
Big Data Essentials With Hadoop
Big Data Essentials With HadoopBig Data Essentials With Hadoop
Big Data Essentials With Hadoop
 
Netbeans jasper-tutorial
Netbeans jasper-tutorialNetbeans jasper-tutorial
Netbeans jasper-tutorial
 
Installasi dan Konfigurasi Framework CakePhp
Installasi dan Konfigurasi Framework CakePhpInstallasi dan Konfigurasi Framework CakePhp
Installasi dan Konfigurasi Framework CakePhp
 
Modul PBO Bab-11 - JDBC
Modul PBO Bab-11 - JDBCModul PBO Bab-11 - JDBC
Modul PBO Bab-11 - JDBC
 
Mengamankan Aplikasi Java EE 6
Mengamankan Aplikasi Java EE 6Mengamankan Aplikasi Java EE 6
Mengamankan Aplikasi Java EE 6
 
Database Operation di VB.NET
Database Operation di VB.NETDatabase Operation di VB.NET
Database Operation di VB.NET
 
Modul Laravel 10 - ToT Laravel TcOT.pptx
Modul Laravel 10 - ToT Laravel TcOT.pptxModul Laravel 10 - ToT Laravel TcOT.pptx
Modul Laravel 10 - ToT Laravel TcOT.pptx
 
Membuat aplikasi-rental-dengan-java-dan-my sql
Membuat aplikasi-rental-dengan-java-dan-my sqlMembuat aplikasi-rental-dengan-java-dan-my sql
Membuat aplikasi-rental-dengan-java-dan-my sql
 
Akses database dengan asp
Akses database  dengan aspAkses database  dengan asp
Akses database dengan asp
 
Kelompok 15
Kelompok 15Kelompok 15
Kelompok 15
 
Kelompok 15
Kelompok 15Kelompok 15
Kelompok 15
 

Web Service Menggunakan Axis

  • 1. Membangun Aplikasi Web Service Sederhana Menggunakan Apache AXIS 1.2 (Gandhi Manalu) 1. Pengaturan AXIS Download file axis-bin-1_2_1.tar.gz dan ekstrak ke sebuah direktori tertentu (misalnya: E:LaboratoryJavaLibAxis_Home). Direktori tersebut akan disebut dengan nama Axis_Home. 2. Pengaturan Tomcat a) Buat sebuah folder baru dengan nama axis dalam folder webapps (D:Program FilesApache Software FoundationTomcat 5.5webappsaxis) b) Buat sebuah folder baru dengan nama WEB-INF di dalam folder axis (D:Program FilesApache Software FoundationTomcat 5.5webappsaxisWEB-INF) c) Buat sebuah folder baru dengan nama classes di dalam folder axisWEB-INF (D:Program FilesApache Software FoundationTomcat 5.5webappsaxisWEB-INFclasses) d) Kopikan file web.xml yang ada di direktori Axis_HomewebappsaxisWEB-INF (E:LaboratoryJavaLibAxis_HomewebappsaxisWEB-INF) ke folder WEB-INF yang dibuat pada langkah 2.b (D:Program FilesApache Software FoundationTomcat 5.5webappsaxisWEB-INF) e) Kopikan folder Axis_HomewebappsaxisWEB-INFlib (E:LaboratoryJavaLibAxis_HomewebappsaxisWEB-INFlib) ke folder WEB-INF yang dibuat pada langkah 2.b (D:Program FilesApache Software FoundationTomcat 5.5webappsaxisWEB-INFlib) 3. Pengaturan Lingkungan Kerja a) Edit Environment Variables (Control Panel -> System -> Advanced -> Environment Variables), tambahkan variable baru dengan nama AXIS_HOME dan valuenya adalah Axis_Home (misalnya: E:LaboratoryJavaLibAxis_Home). b) Buat juga variable dengan nama AXIS_LIB dan valuenya adalah %AXIS_HOME%lib c) Buat juga variable dengan nama AXISCLASSPATH dan valuenya adalah %AXIS_LIB %axis.jar;%AXIS_LIB%commons-discovery-0.2.jar;%AXIS_LIB%commons-logging- 1.0.4.jar;%AXIS_LIB%jaxrpc.jar;%AXIS_LIB%saaj.jar;%AXIS_LIB%log4j- 1.2.8.jar; d) Uji coba apakah Axis sudah berhasil diinstall: ◦ Restart Tomcat (pastikan berjalan di port 8080) ◦ Jalankan perintah java -cp %AXISCLASSPATH% org.apache.axis.client.AdminClient list ◦ Apabila ditampilkan isi dari sebuah file XML berarti instalasi Axis sudah berhasil dilakukan Gandhi Manalu Web Service Sederhana Menggunakan AXIS 1.2 1 dari 6 hal
  • 2. 4. Pembuatan WSDL Misalkan nama file WSDL adalah math.wsdl dengan isi seperti di bawah ini: <?xml version="1.0" encoding="UTF-8"?> <wsdl:definitions targetNamespace="http://MathService.praktikum.ie.gandhim.org" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:impl="http://MathService.praktikum.ie.gandhim.org" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <wsdl:message name="addNumberResponse"> <wsdl:part name="addNumberReturn" type="xsd:int"/> </wsdl:message> <wsdl:message name="addNumberRequest"> <wsdl:part name="firstNumber" type="xsd:int"/> <wsdl:part name="secondNumber" type="xsd:int"/> </wsdl:message> <wsdl:portType name="MathHandler"> <wsdl:operation name="addNumber" parameterOrder= "firstNumber secondNumber"> <wsdl:input message="impl:addNumberRequest" name="addNumberRequest"/> <wsdl:output message="impl:addNumberResponse" name="addNumberResponse"/> </wsdl:operation> </wsdl:portType> <wsdl:binding name="MathServiceSoapBinding" type="impl:MathHandler"> <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="addNumber"> <wsdl:input name="addNumberRequest"> <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://MathService.praktikum.ie.gandhim.org" use="literal"/> </wsdl:input> <wsdl:output name="addNumberResponse"> <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://MathService.praktikum.ie.gandhim.org" use="literal"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="MathHandlerService"> <wsdl:port Gandhi Manalu Web Service Sederhana Menggunakan AXIS 1.2 2 dari 6 hal
  • 3. binding="impl:MathServiceSoapBinding" name="MathService"> <wsdlsoap:address location="http://localhost:8080/axis/services/MathService"/> </wsdl:port> </wsdl:service> </wsdl:definitions> Supaya dapat diakses dari aplikasi yang berada di komputer selain komputer yang menyediakan service, ganti localhost pada WSDL dengan IP Address komputer penyedia service. 5. Pembuatan Client Stub Client Stub akan dihasilkan dari file WSDL yang telah dibuat pada langkah 4. Jalankan perintah java -cp .;%AXISCLASSPATH% org.apache.axis.wsdl.WSDL2Java math.wsdl Perintah di atas akan menghasilkan class-class yang berada di folder berupa package yang mengikuti name space WSDL, yaitu orggandhimiepraktikumMathService. File-file Client Stub yang dihasilkan adalah: • MathHandler.java • MathHandlerService.java • MathHandlerServiceLocator.java • MathServiceSoapBindingStub.java MathHandler.java merupakan interface yang berisi deklarasi method yang nantinya bisa dipanggil oleh Client (yang disediakan oleh Server). Isi dari MathHandler.java adalah sebagai berikut package org.gandhim.ie.praktikum.MathService; public interface MathHandler extends java.rmi.Remote { public int addNumber(int firstNumber, int secondNumber) throws java.rmi.RemoteException; } Untuk kemudahan, pindahkan folder orggandhimiepraktikumMathService beserta isinya ke sebuah folder, misalnya client, sehingga struktur foldernya menjadi clientorggandhimiepraktikumMathService. 6. Pembuatan Server Skeleton Server Skeleton juga dihasilkan dari file WSDL yang telah dibuat pada langkah 4. Jalankan perintah java -cp .;%AXISCLASSPATH% org.apache.axis.wsdl.WSDL2Java --server-side --skeletonDeploy true math.wsdl Perintah di atas akan menghasilkan class-class yang berada di folder berupa package yang mengikuti name space WSDL, yaitu orggandhimiepraktikumMathService. File-file Server Skeleton yang dihasilkan adalah: • MathHandler.java • MathHandlerService.java • MathHandlerServiceLocator.java • MathServiceSoapBindingImpl.java • MathServiceSoapBindingSkeleton.java Gandhi Manalu Web Service Sederhana Menggunakan AXIS 1.2 3 dari 6 hal
  • 4. • MathServiceSoapBindingStub.java • deploy.wsdd • undeploy.wsdd File-file yang dicetak tebal merupakan file-file yang juga merupakan Client Stub. Untuk kemudahan, pindahkan folder orggandhimiepraktikumMathService beserta isinya ke sebuah folder, misalnya server, sehingga struktur foldernya menjadi serverorggandhimiepraktikumMathService. File MathServiceSoapBindingImpl.java merupakan implementasi dari semua metode-metode yang didefinisikan di WSDL. Isi dari file tersebut adalah sebagai berikut: package org.gandhim.ie.praktikum.MathService; public class MathServiceSoapBindingImpl implements org.gandhim.ie.praktikum.MathService.MathHandler{ public int addNumber(int firstNumber, int secondNumber) throws java.rmi.RemoteException { return -3; } } Method addNumber hanya berisikan implementasi trivial. Tambahkan kode yang diperlukan ketika client merequest method tersebut. Karena method tersebut bertujuan untuk menjumlahkan kedua bilangan, maka implementasinya adalah sebagai berikut: package org.gandhim.ie.praktikum.MathService; public class MathServiceSoapBindingImpl implements org.gandhim.ie.praktikum.MathService.MathHandler{ public int addNumber(int firstNumber, int secondNumber) throws java.rmi.RemoteException { return (firstNumber + secondNumber); } } 7. Kompilasi Client Stub Kompile semua file yang merupakan Client Stub yang berada di folder clientorggandhimiepraktikumMathService. 8. Kompilasi Server Skeleton Kopikan semua file *.java yang ada pada folder serverorggandhimiepraktikumMathService ke folder classes yang dibuat di langkah 2c. Kompile semua file *.javav yang sudah dikopi ke folder classes tersebut. 9. Deploy Service Kopi file deploy.wsdd yang ada pada folder serverorggandhimiepraktikumMathService ke folder WEB-INF yang dibuat di langkah 2b. Dan rename menjadi deployMath.wsdd. Kemudian jalankan Command Prompt, dan change directory ke folder WEB-INF yang dibuat di langkah 2b, kemudian jalankan perintah java -cp %AXISCLASSPATH% Gandhi Manalu Web Service Sederhana Menggunakan AXIS 1.2 4 dari 6 hal
  • 5. org.apache.axis.client.AdminClient deployMath.wsdd Hasilnya dapat dilihat pada gambar di bawah ini: Jalankan browser Anda, dan buka alamat http://localhost:8080/axis/servlet/AxisServlet. Apabila web service sudah berhasil di deploy, Anda akan melihat tampilan seperti gambar di bawah ini: 10. Menjalankan Client Sekarang akan dibuat aplikasi Client yang akan memanggil service yang disediakan tersebut. Untuk membuat client, buat sebuah file baru, misalnya MathClient di folder clientorggandhimiepraktikumMathService lalu ketikkan kode di bawah ini: package org.gandhim.ie.praktikum.MathService; import org.apache.axis.client.Call; import org.apache.axis.client.Service; import org.apache.axis.encoding.XMLType; import org.apache.axis.utils.Options; import javax.xml.namespace.QName; import javax.xml.rpc.ParameterMode; Gandhi Manalu Web Service Sederhana Menggunakan AXIS 1.2 5 dari 6 hal
  • 6. public class MathClient { public static void main(String [] args) { try { Options options = new Options(args); String endpointURL = options.getURL(); String textToSend; args = options.getRemainingArgs(); Service service = new Service(); Call call = (Call) service.createCall(); call.setTargetEndpointAddress( new java.net.URL(endpointURL) ); call.setOperationName( new QName("MathService", "addNumber") ); call.addParameter( "firstNumber", XMLType.XSD_INT, ParameterMode.IN); call.addParameter( "secondNumber", XMLType.XSD_INT, ParameterMode.IN); call.setReturnType( org.apache.axis.encoding.XMLType.XSD_INT ); Integer ret = (Integer) call.invoke( new Object[] { new Integer(1), new Integer(5)} ); System.out.println("Returned : " + ret.intValue() ); } catch (Exception e) { System.err.println(e.toString()); } } } Hasilnya apabila aplikasi client dijalankan adalah seperti gambar di bawah ini: :: Akhir Tutorial :: Gandhi Manalu Web Service Sederhana Menggunakan AXIS 1.2 6 dari 6 hal