Web Service Menggunakan Axis

1,828 views

Published on

Tutorial membangun aplikasi web service menggunakan AXIS.

Published in: Technology, News & Politics
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,828
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Web Service Menggunakan Axis

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

×