Anda di halaman 1dari 11

Tutorial Lengkap Membuat Web Service Dengan Java

Satu yang belum pernah aku temui adalah tutorial membuat web service menggunakan java dengan database mysql. Selama ini aku mencari-cari tutorial ini, karena tidak menemukan akhirnya aku explor sana dan sini bahkan pernah putus asa. Aku yakin banyak temen-temen programmer java yang masih pemula mengalami hal yang sama. Oleh karena itu kali ini aku ingin memposting hasil risetku sendiri tentang bagaimana cara membuat web service di java untuk menampilkan database mysql. Sebelumnya maa buat para master java dimanapun berada, bukan ane mau pamer tapi hanya ingin share dengan temen-temen yang belum bisa. !alau nanti ada kesalahan dan kekurangan, tidak berlebihan kiranya untuk memberikan masukan dan koreksinya O!, langsung aja. Saat ini arah pengembangan aplikasi adalah menggunakan model SOA "service oriented application#. Salah satu bentuk implementasi di tingkat dasar adalah penggunaan web service sebagai jalan untuk berkomunikasi lintas plat orm aplikasi. $ampangnya dengan web service, apapun aplikasinya "web, dekstop, mobile#, apapun OSnya "linux, mac, solaris, windows# akan saling dapat berkomunikasi melalui bahasa xml. Apa saja isi tutorial ini % &. Step by step membuat web service, '. Script sql dari tabel yang digunakan (. )asil jadi dari tutorial ini dalam bentuk .war yang sudah siap digunakan atau dicoba dikomputer Anda. !ita mulai * +ertama adalah kebutuhannya yaotu di dalam komputer sudah terinstall database mysql, netbeans ide versi ,.- atau ,.., jdk , !edua adalah skenarionya kita akan mempublish sebuah webservice untuk / &. menampilkan database karyawan '. mencari data karyawan berdasarkan nama 0uatlah terlebih dahulu tabel dengan nama tbl1karyawan yang susunannya seperti gambar berikut ini /

2alam tutorial ini settingan usernya adalah / 3ser / user +assword / user )ost / localhost 2atabase / karyawan Step 1. 0uka netbeans ide anda untuk memulai membuat project baru. !ali ini buatlah sebuah project 4ava 5eb -6 5eb Application

Step 2. !emudian klik 7ext dan dan beri nama project 5ebServices seperti gambar berikut ini. !emudian pilih 42! , dan Application Servernya pilih $lass ish agar kita bisa melakukan testing pada web service yang kita buat

Step 3. Setelah selesai maka akan tampil project baru pada editor netbeans seperti ini /

Step 4. !emudian buatlah pacakage untuk menyimpan class-class yang akan kita gunakan dalam webservice ini. !ita pisahkan antara package untuk util "!oneksi database helper class#, model untuk merepresentasikan tabel karyawan dan service untuk web servicenya sendiri. 8ancangannya adalah seperti ini / &. package ahsan ile.webservice berisi class tipe web service dengan nama 2ata!aryawan.java '. package ahsan ile.webservice.model berisi class !aryawan.java (. package ahsan ile.webservice.util berisi class 2atabase.java, 7ested9xeception.java dan 5arning.java 2an pada hasil akhirnya tampil seperti gambar berikut ini, tetapi ini nanti dulu, silahkan langsung lanjut ke ke Step - untuk membuat 5ebService 2ata!aryawan

Step 5. :ara membuat kelas ahsan ile.webservice.2ata!aryawan &. +ada package ahsan ile.webservice klik kanan pilin 7ew - 5eb Service '. 0eri nama web service tersebut 2ata!aryawan kemudian (. +ilih create rom scratch

;. !emudian klik inish dan akan tampil sebuah editor web service. -. +ada editor tersebut tambahkan ' buah method Operation masing masing bernama get!aryawan dengan tanpa parameter dan cari!aryawan dengan parameter bertipe String dengan nama namakaryawan ,. )asil akhir dari editor web service adalahs sebagai berikut /

Skenarionya adalah get!aryawan untuk mengambil data di tabel tbl1karyawan semuanya dalam bentuk yang akan kita de inisikan dalam class !aryawan. !emudian cari!aryawan sama juga untuk mengambil data di tbl1karyawan tetapi dengan model pencarian berdasarkan parameter nama karyawan Step 6. <ende inisikan class !aryawan. class ini ber ungsi untuk merepresentasikan isi tbl1karyawan "secara sederhana# yang nantinya akan menjadi struktur xml dalam webservicenya. +ertama kita buat private atribut dari masing-masing ield yang ada yaitu / &. private int id!aryawan '. private String nama!aryawan (. private String alamat!aryawan ;. private String email!aryawan -. private String telepon!aryawan 4angan lupa buat untuk getter dan setternya dengan cara klik kanan pada editor -6 insert code -6 $etter and Setter. !emudian centang semua ield. <aka getter dan setter akan dibuat oleh netbeans secara otomatis. :lass !aryawan dapat dilihat berikut ini /
package ahsanfile.webservice.model; /** * * @author ahsanfile */ public class Karyawan { private int idKaryawan; private String namaKaryawan; private String alamatKaryawan; private String emailKaryawan; private String teleponKaryawan; private String error essage; public String get!lamatKaryawan"# { return alamatKaryawan; $ public void set!lamatKaryawan"String alamatKaryawan# { this.alamatKaryawan % alamatKaryawan; $ public String get&mailKaryawan"# { return emailKaryawan; $ public void set&mailKaryawan"String emailKaryawan# { this.emailKaryawan % emailKaryawan; $ public int get'dKaryawan"# { return idKaryawan; $ public void set'dKaryawan"int idKaryawan# { this.idKaryawan % idKaryawan; $ public String get(amaKaryawan"# { return namaKaryawan; $ public void set(amaKaryawan"String namaKaryawan# { this.namaKaryawan % namaKaryawan; $

public String get)eleponKaryawan"# { return teleponKaryawan; $ public void set)eleponKaryawan"String teleponKaryawan# { this.teleponKaryawan % teleponKaryawan; $ public String get&rror essage"# { return error essage; $ public void set&rror essage"String error essage# { this.error essage % error essage; $ $

Step . Sampai di sini hal utama telah kita lakukan. Sekarang tinggal melengkapi method get!aryawan dan cari!aryawan pada webService 2ata!aryawan. =sinya adalah seperti ini /
package ahsanfile.webservice; import ahsanfile.webservice.util.*ata+ase; import ahsanfile.webservice.model.Karyawan; import ,ava.s-l..reparedStatement; import ,ava.s-l./esultSet; import ,ava.util.!rray0ist; import ,ava.util.0ist; import ,ava1.,ws.2eb ethod; import ,ava1.,ws.2eb.aram; import ,ava1.,ws.2ebService; /** * * @author ahsanfile */ @2ebService"# public class *ataKaryawan { /** * 2eb service operation */ @2eb ethod"operation(ame % 3getKaryawan3# public 0ist4Karyawan5 getKaryawan"# { 0ist4Karyawan5 lk % new !rray0ist4Karyawan5"#; *ata+ase db % new *ata+ase"#; try { String s-l % 3select * from tbl6karyawan3; .reparedStatement ps % db.get7onnection"#.prepareStatement"s-l#; /esultSet rs % ps.e1ecute8uery"#; while "rs.ne1t"## { Karyawan karyawan % new Karyawan"#; karyawan.set&rror essage"33#; karyawan.set'dKaryawan"rs.get'nt"3id6karyawan3##; karyawan.set(amaKaryawan"rs.getString"3nama6karyawan3##; karyawan.set!lamatKaryawan"rs.getString"3alamat6karyawan3##; karyawan.set&mailKaryawan"rs.getString"3email6karyawan3##; karyawan.set)eleponKaryawan"rs.getString"3telepon6karyawan3##; lk.add"karyawan#; $ return lk; $ catch "&1ception e# { Karyawan karyawan % new Karyawan"#; karyawan.set&rror essage"e.get essage"##; lk.add"karyawan#; return lk; $ finally { db.close7onnection"#; db % null;

$ $ /** * 2eb service operation */ @2eb ethod"operation(ame % 3cariKaryawan3# public 0ist4Karyawan5 cariKaryawan"@2eb.aram"name % 3namKaryawan3# final String namKaryawan# { 0ist4Karyawan5 lk % new !rray0ist4Karyawan5"#; *ata+ase db % new *ata+ase"#; try { String s-l % 3select * from tbl6karyawan where nama6karyawan like 93; .reparedStatement ps % db.get7onnection"#.prepareStatement"s-l#; ps.setString":; 3<3 = namKaryawan = 3<3#; /esultSet rs % ps.e1ecute8uery"#; while "rs.ne1t"## { Karyawan karyawan % new Karyawan"#; karyawan.set&rror essage"33#; karyawan.set'dKaryawan"rs.get'nt"3id6karyawan3##; karyawan.set(amaKaryawan"rs.getString"3nama6karyawan3##; karyawan.set!lamatKaryawan"rs.getString"3alamat6karyawan3##; karyawan.set&mailKaryawan"rs.getString"3email6karyawan3##; karyawan.set)eleponKaryawan"rs.getString"3telepon6karyawan3##; lk.add"karyawan#; $ return lk; $ catch "&1ception e# { Karyawan karyawan % new Karyawan"#; karyawan.set&rror essage"e.get essage"##; lk.add"karyawan#; return lk; $ finally { db.close7onnection"#; db % null; $ $ $

:lass Data!a"e

package ahsanfile.webservice.util; import ,ava.s-l.7onnection; import ,ava.s-l.*river anager; import ,ava.s-l.S80&1ception; /** * * @author ahsanfile */ public class *ata+ase { private 7onnection connection; private String user(ame % 3user3; private String pass2ord % 3user3; private String host(ame % 3localhost3; private String db(ame % 3karyawan3; public *ata+ase"# {

try { *river anager.register*river"new com.mys-l.,dbc.*river"##; $ catch "S80&1ception e# { throw new (ested&1ception"3&rror driver > 3 = e.get essage"#; e; ?#; $ try { connection % *river anager.get7onnection"3,dbc>mys-l>//3 = host(ame = 3>@@?A/3 = db(ame = 39user%3 = user(ame = 3Bpassword%3 = pass2ord#; $ catch "&1ception e# { throw new (ested&1ception"3&rror connection > 3 = e.get essage"#; e; ?#; $ $ public 7onnection get7onnection"# { return connection; $ public void close7onnection"# { try { connection.close"#; $ catch "&1ception e# { throw new (ested&1ception"3&rror close connection > 3 = e.get essage"#; e; ?#; $ $ $

:lass #e"te$%&ception
package ahsanfile.webservice.util; import ahsanfile.webservice.util.2arning; /** * * @author ahsanfile */ public class (ested&1ception e1tends /untime&1ception implements 2arning { protected &1ception nested&1ception; protected int issue'd; private String 6warning; public String get(ested essage"# { String nested essage % 33; try { if "nested&1ception instanceof (ested&1ception# { (ested&1ception ne % "(ested&1ception# nested&1ception; nested essage % nested&1ception.get essage"# = ne.get(ested essage"#; $ else { nested essage % nested&1ception.get essage"#; $ $ catch "&1ception e# { $ return nested essage; $ public (ested&1ception"String msg; &1ception e; int id# {

super"msg#; this.nested&1ception % e; this.issue'd % id; 6warning % msg; $ public (ested&1ception"String msg;String 2arning; &1ception e; int id# { super"msg#; this.nested&1ception % e; this.issue'd % id; $ public &1ception get(ested&1ception"# { return this.nested&1ception; $ public int get'ssue"# { return this.issue'd; $ public String get2arning"# { return 6warning; $ public void set2arning"String warning# { this.6warning % warning; $ $

=nter ace Warning

package ahsanfile.webservice.util; /** * * @author ahsanfile */ public interface 2arning { public String get2arning"#; $

Step .. 7ah sampai di sini semua sudah lengkap dan diap untuk digunakan. 3ntuk dapat mengetes webservice yang barusan kita buat, maka pada project 5ebService klik kanan dan 2eploy. !emudian pada child 5eb Service klik kanan pada node 2ata!aryawan dan pilih >est 5ebservice. <aka jika tidak ada error akan tampil dalam browser seperti ini /

:oba klik tombol get!aryawan dan hasilnya adalah inter ace berupa xml yang siap untuk dikonsumsi oleh sitem kita. Seperti gambar berikut ini /

!emudian coba masukan parameter nama pada method cari!aryawan dan klik tombol cari!aryawan. 2alam tutorial ini, saya memasukan parameter hadi dan hasil invokenya adalah seperti ini /

Sampai disini dulu share pengalaman dariku. Oh iya kalau masih ada error coba cek library mysqlnya sudah ada atau belum dan juga settingan user, host dan password pada class 2ata0ase. Sebagai bukti tutorial ini jalan, berikut ini aku lampirkan attachment berupa .war dan sql script tabel tbl1karyawan. Silahkan download di sini 4angan lupa buang extention .ppt karena sebenarnya ile tersebut adalah .tar.g? saja

Anda mungkin juga menyukai