Rabu, 26 September 2012

Tutorial java web service client pada BC11Services dalam sistem Indonesia National Single Window – INSW

sumber : 

http://ahsanfile.com/2010/07/05/tutorial-java-web-service-client-pada-bc11services-dalam-sistem-insw/

 
 
 
 
 
 
Rate This

Sitem INSW menyediakan interface untuk mengakses data BC11 atau manifes dalam bentuk web service yang beralamat di http://services.insw.go.id/BC11Services/Services. Fasilitas ini diperuntukan bagi siapa saja pengguna jasa sistem INSW untuk mengetahui data BC11-nya secara online.
Untuk dapat memanfaatkan web service tersebut, dibutuhkan sebuah aplikasi client. Nah client ini dapat dibuat menggunakan program apapun seperti VB, VB.NET, Java, PHP, C/C++, Phyton dan sebagainya. Namun kali ini aku akan memberikan share pengalaman membuatnya menggunakan bahasa pemrograman Java.
Pertama kita buat sebuah project java. IDE yang aku gunakan adalah Netbeans 6.8, namun aku yakin dapat diterapkan dimanapun asal di komputer tersebut sudah terinstal java.
Step 1.
Buat sebuah project java baru, pilih tipe java class library. Lho koq gak langsung aplikasinya saja. Naa disitulah salah satu fitur yang disediakan oleh java. Client manifes ini sengaja dibuat sebagai library agar dapat digunakan kembali baik di aplikasi dekstop atau web.

Step 2.
Setelah project terbuat buatlah sebuah package bernama ahsanfile.manifes
Step 3.
Klik kanan pada package ahsanfile.manifes kemudian pilih New Web Service Client, kemudian akan tampil form seperti ini :

Kemudian pilih WSDL URL dan masukan alamat web service BC11 dari sistem INSW yang beralamat di : http://services.insw.go.id/BC11Services/Services?WSDL, kemudian klik finish untuk Netbeans melakukan generate class yang akan digunakan untuk mengakses web service tersebut.
Yang mana jika diakses WSDL tersebut adalah seperti gambar berikut ini :

Step 4.
Buat sebuah class bernama Manifes.java untuk wrapper web service BC11Services. Untuk lengkapnya seperti berikut ini
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ahsanfile.manifes;

/**
 *
 * @author ahsanfile
 */
public class Manifes {

 private String errorMessage = "";
 private String nomorBC11;
 private String tanggalBC11;
 private String nomorPos;
 private String namaPengangkut;
 private String nomorVoy;
 private String kodeKantorBC;
 private String consignee;

 public Manifes(String nomorBL, String tanggalBL) {
 String manifes[] = getManifesData(nomorBL, tanggalBL);
 if (manifes[0].equalsIgnoreCase("Error")) {
 this.errorMessage = manifes[1];
 } else {
 this.nomorBC11 = manifes[0];
 this.tanggalBC11 = manifes[1];
 this.nomorPos = manifes[2];
 this.namaPengangkut = manifes[3];
 this.nomorVoy = manifes[4];
 this.kodeKantorBC = manifes[5];
 this.consignee = manifes[6];
 }
 }

 /**
 * Untuk mendapatkan result berupa array String.<br/>
 * Respon dari web service BC11Services adalah string data yang jadi satu tetapi memuat banyak data<br/>
 * Setiap element data dipisahkan dengan tanda |
 * @return
 */
 public String[] getManifesData(String nomorBL, String tanggalBL) {
 try {
 Services_Impl service = new Services_Impl();
 ServicesPort port = service.getServicesPort();
 return port.cekBC11(nomorBL, tanggalBL).split("\\|");
 } catch (Exception e) {
 String error[] = new String[2];
 error[0] = "Error";
 error[1] = e.getMessage();
 return error;
 }
 }

 public String getConsignee() {
 return consignee;
 }

 public String getErrorMessage() {
 return errorMessage;
 }

 public String getKodeKantorBC() {
 return kodeKantorBC;
 }

 public String getNamaPengangkut() {
 return namaPengangkut;
 }

 public String getNomorBC11() {
 return nomorBC11;
 }

 public String getNomorPos() {
 return nomorPos;
 }

 public String getNomorVoy() {
 return nomorVoy;
 }

 public String getTanggalBC11() {
 return tanggalBC11;
 }
}
Nah sekarang tinggal melakukan test invoce terhadap web service BC11Services. Kali ini aku mencontohkan dengan sebuah java class biasa. Tetapi dapat juga dikembangkan pada aplikasi web atau dekstop. Buat sebuah class bernama TesManifes.java selengkapnya seperti ini
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ahsanfile.manifes;

/**
 *
 * @author ahsanfile
 */
public class TesManifes {

 public static void main(String[] args) {
 Manifes manifes = new Manifes("0420000681", "16-06-2010");
 if (manifes.getErrorMessage().equalsIgnoreCase("")) {
 System.out.println("Nomor BC11 : " + manifes.getNomorBC11()
 + ", tanggal : " + manifes.getTanggalBC11());
 System.out.println("Nomor Pos : " + manifes.getNomorPos());
 System.out.println("Nama Pengangkut : " + manifes.getNamaPengangkut()
 + ", nomor voy : " + manifes.getNomorVoy());
 System.out.println("Kantor BC : " + manifes.getKodeKantorBC());
 System.out.println("Consignee : " + manifes.getConsignee());
 } else {
 System.out.println("Terjadi error : " + manifes.getErrorMessage());
 }
 }
}
Yang terakhir coba run class TesManifes.java, Web service BC11Service membutuhkan 2 inputan data yaitu nomor B/L dan tanggal B/L dalam format dd-mm-yyyy. Dalam contoh tutorial ini silahkan gunakan nomor BL : 0420000681, dan tanggalnya : 16-06-2010 . Jika tidak ada error maka akan tampil data seperti gambar berikut ini :

Selamat mencoba !

It's Me & Family

Materi Kuliah

  • Analisis Sistem Informasi
  • Perancangan Sistem Informasi
  • Analisis dan Perancangan Sistem Informasi
  • Sistem Basis Data
  • Sistem Operasi

Guest Book

Followers