Dokumen tersebut memberikan panduan lengkap untuk membangun web service sederhana menggunakan Apache AXIS 1.2, meliputi pengaturan AXIS, Tomcat, lingkungan kerja, pembuatan WSDL, client stub, server skeleton, deploy service, dan menjalankan client.
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