Membuat Web Service secara Buttom Up


Dalam pembangunan sebuah web service, ada dua pendekatan yang dapat kita gunakan: secara Buttom-Up atau Top-Down. Jika kita menggunakan pendekatan Buttom-Up, yang akan kita buat terlebih dahulu adalah definisi Interface dan Implementatornya. Baru setelah itu dihasilkan WSDL dan pemaketan EAR untuk kemudian di deploy ke Application Server. Sedangkan pendekatan Top-Down dilakukan sebaliknya.

Di sini saya akan mencoba menulis tahapan yang dapat kita lakukan untuk mencoba pendekatan Buttom-Up lalu memanfaatkan Oracle WebServicesAssembler yang sudah dibawakan juga di dalam paket JDeveloper 10.1.3 termasuk di dalamnya terdapat OC4J (Oracle Container for Java) standalone yang dapat kita gunakan untuk percobaan web service.

  • Buatlah sebuah interface Java seperti di bawah ini, dan simpan dengan nama AddInterface.java

package number;

import java.rmi.RemoteException;
import java.rmi.Remote;

public interface AddInterface extends Remote {
public int doAdd(int a, int b) throws RemoteException;
}

  • Buat juga class implementatornya seperti di bawah ini dan simpan dengan nama AddImpl.java

package number;

public class AddImpl implements AddInterface {
public int doAdd(int a, int b) {
return a+b;
}
}

  • Lalu kompilasi keduanya dengan perintah berikut:

$ mkdir build
$ javac -d ./build AddInterface.java
$ javac -cp ./build -d ./build AddImpl.java

  • Lalu, kita dapat menggunakan Oracle WebServicesAssembler untuk menghasilkan paket EAR dan juga web servicenya berdasar Interface dan class Implementator kita tadi.

$ java -cp ./build -jar $JDEVSTUDIO_HOMEANDA/webservices/lib/wsa.jar -assemble -appName AddApp -serviceName AddService -input ./build -interfaceName number.AddInterface -className number.AddImpl -output WSArtifacts -ear AddApp.ear -context AddNumber -uri AddService

  • setelah itu, jalankan terlebih dahulu OC4J yang sudah tersedia dalam paket JDeveloper:

$ cd $JDEV_HOME_ANDA
$ cd jdev/bin
$ ./start_oc4j

  • untuk mencoba melakukan deployment, kita dapat menggunakan perintah sebagai berikut:

java -jar $JDEV_STUDIO_HOME_ANDA/j2ee/home/admin_client.jar deployer:oc4j:localhost:23791 oc4jadmin <passwordAnda> -deploy -file AddApp.ear -deploymentName AddNumber -bindAllWebApps default-web-site

  • Setelah berhasil, dari web browser Anda dapat mengunjungi:

http://localhost:8888/em

  • lalu pilih tab Web Services. Di sana akan muncul Web service kita yang sudah dideploy.

  • Silahkan klik nama HttpSoap11 sebagai port name untuk web service kita. Di sana kita akan dapat melakukan pengujian terhadap web service yang sudah kita deploy.

  • Kita juga dapat mengembangkan sebuah aplikasi client berdasar definisi WSDL tersebut. Buat sebuah folder dengan nama client (misalnya). Lalu dari dalam folder tersebut ketik perintah berikut:

java -jar $JDEV_STUDIO_HOME_ANDA/webservices/lib/wsa.jar -genProxy -output ./ProxySrc -wsdl http://localhost:8888/AddNumber/AddService?WSDL

  • di sini kita akan diberikan sebuah stub javax.xml.rpc.Stub berdasar wsdl yang kita berikan. (silahkan lihat di dalam direktori PorxySrc yang dihasilkan.
  • Kemudian kita dapat membuat sebuah class utama yang akan menjadi program client kita.

package addclient;

import demo.*;
import demo.HttpSoap11Client;

public class AddClient
{
public static void main(String[] argv) throws Exception
{
number.HttpSoap11Client proxy = new
number.HttpSoap11Client();
System.out.println(proxy.doAdd(10, 30));
}
}

  • sebelum dilakukan kompilasi, pastikan kita sudah memiliki wsclient_extended.jar. Untuk kompilasi dapat dilakukan dengan perintah di dalam folder ProxySrc :

$ javac -cp .:../wsclient_extended.jar number/*.java
$ javac -cp .:$JDEV_STUDIO_HOME_ANDA/webservices/lib/wsclient.jar:../wsclient_extended.jar number/runtime/*.java

  • pindah ke folder dimana AddClient.java tersimpan, lalu kompilasi dengan perintah:

$ javac -cp .:./ProxySrc:$JDEV_STUDIO_HOME_AND/webservices/lib/wsclient.jar:$LOKASI_WSCLIENTEXT/wsclient_extended.jar AddClient.java

  • untuk menjalankan program client kita, dapat diberikan perintah:

$ java -cp .:./ProxySrc:$JDEV_STUDIO_HOME_AND/webservices/lib/wsclient.jar:$JDEV_STUDIO_HOME_AND/webservices/lib/orasaaj.jar:$LOKASI_WSCLIENTEXT/wsclient_extended.jar addclient.AddClient
40

Selamat mencoba!

One thought on “Membuat Web Service secara Buttom Up

  1. mahu tanya..
    apa perlunya kita kepada web service ni, boleh berbagi cerita sedikit berkenaan dgn web service….

    kalau guna netbean bgmn? ada beza?

Komentar ditutup.