57
BAB 4 Membangun Web Services Pada bagian ini akan dilakukan tahapan pembuatan web services yang dimulai dengan membuat aplikasi kelas java, membuat user interface, membuat web service, dan terakhir adalah membuat klien web service berbasis browser (Barrett, 2009). 4.1 Membangun Aplikasi Kelas Java Pada proyek ini akan dibuat aplikasi Java yang sederhana yaitu HelloWord. Aplikasi ini mempunyai sebuah kelas POJO. Method greet() akan mengambil nama orang sebagai input dan membangkitkan ucapan (greeting) yang didasarkan pada waktu dan bulan. 4.1.1 Membuat Project Java Semua file yang dibuat dalam proyek ini akan disimpan dalam folder proyek yang terpisah. Langkah-langkah dalam membuat Project Java adalah sebagai berikut : 1. Pilih File / New Project dari menu. Wizard New Project akan muncul. 74

BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

  • Upload
    tranque

  • View
    217

  • Download
    2

Embed Size (px)

Citation preview

Page 1: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

BAB 4Membangun Web Services

Pada bagian ini akan dilakukan tahapan pembuatan web services yang dimulai dengan membuat aplikasi kelas java, membuat user interface, membuat web service, dan terakhir adalah membuat klien web service berbasis browser (Barrett, 2009).

4.1 Membangun Aplikasi Kelas JavaPada proyek ini akan dibuat aplikasi Java yang sederhana yaitu

HelloWord. Aplikasi ini mempunyai sebuah kelas POJO. Method

greet() akan mengambil nama orang sebagai input dan membangkitkan

ucapan (greeting) yang didasarkan pada waktu dan bulan.

4.1.1 Membuat Project JavaSemua file yang dibuat dalam proyek ini akan disimpan dalam

folder proyek yang terpisah. Langkah-langkah dalam membuat

Project Java adalah sebagai berikut :

1. Pilih File / New Project dari menu. Wizard New Project akan

muncul.

74

Page 2: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

2. Untuk Categories, pilih Java

3. Untuk Projects, pilih Java Application

4. Klik Next. Wizard New Java Application akan muncul.

5. Untuk Project Name, ketik GreeterJavaProject

6. Untuk Project Location, ketik C:\MyHelloNetBeans Jika

direktori tidak ada, maka akan dibuatkan secara otomatis oleh

Netbeans.

7. Klik Finish. Wizard akan menutup dan akan terlihat

GreeterJavaProject ditambahkan ke panel Properties di sisi kiri.

{POJO merupakan singkatan dari “plain old Java object.” Untuk membuat project java ini server GlassFish harus sudah running, dengan memilih menu Start All Programs atau jalankan program start_netbeans.bat dari direktori Glassfish terinstall, misalnya C:\GlassFishESBv21}

4.1.2 Membuat Kelas JavaPada bagian proyek, tambahkan sebuah kelas Java yang akan

menangani lojiknya. Langkah-langkah dalam membuat Kelas Java

adalah sebagai berikut :

75

Page 3: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

1. Klik kanan pada node GreeterJavaProject di panel Projects

dan pilih New / Java Class. Wizard window New Java Class akan

muncul.

2. Untuk Class Name, ketik Greeter

3. Untuk Package, ketik greeting

4. Klik Finish. Wizard window akan tertutup, dan kelas

Greeter.java akan ditambahkan ke hirarki panel proyek dan

editor Java akan terbuka.

Kelas Greeter mempunyai kemampuan untuk mengirim ucapan

selamat (greeting). Berikutnya adalah membuat method tunggal yang

dinamakan greet().

4.1.3 Menambahkan MethodTambahkan definisi method pada huruf yang ditebalkan daari

kelas Greeter pada editor Java. Tambahkan di bagian dalam definisi

kelas Greeter yang kosong.

public class Greeter {public String greet(String name) {

return "";}

}

Gunakan shortcut Alt-Shift-F (menu bar Source/Format ) untuk

reformat kode. Kelas yang dibuat akan menjadi seperti ini:

76

Page 4: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

Sebelum method greet() diperluas, dapat dilihat fungsi yang

dijalankan method ini. Dengan method ini akan diambil nama orang

(seperti Joe) sebagai input dan akan memunculkan sebuah ucapan

seperti berikut :

“Hello, Joe. Have a great afternoon. Time goes fast. We are already in month 5 of the year!”

Ini merupakan ucapan yang diatur, karena melibatkan nama

orang yang di-passing sebagai nilai parameter input yang dinamai

nama. Ini juga diatur karena greeter akan melibatkan “great morning,”

“great afternoon,” or “great evening” yang didasarkan pada waktu kini.

Juga, jumlah bulan (5 dalam contoh) secara tepat direfleksikan dalam

pesan.

Upaya-upaya Booch, Rumbaugh dan Jacobson menghasilkan

keluaran UML 0.9 di bulan Juni 1996 dan UML 0.91 di bulan Oktober

1996. Selama tahun 1996, penulis UML mengundang dan menerima

feedback dari masyarakat umum. Mereka menggabungkan umpan

balik ini, tetapi jelas bahwa masih diperlukan tambahan perhatian.

Untuk menyelesaikan hal ini, tambahkan kode di dalam method

greet() sehingga ini dapat menetapkan waktu kini dan menetapkan

deskrpsi untuk bagian dari hari:

77

Page 5: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

Kode di kopi dan paste diatas dari statemen “return “”;” :

// Get current calendar that access current date/timeCalendar myCalendar = Calendar.getInstance();

// Determine the current hourint hour = myCalendar.get(Calendar.HOUR_OF_DAY);

// Determine part of day String partOfDay = null; if (hour < 12) {

partOfDay = "morning";} else if (hour > 18) {

partOfDay = "evening";} else {

partOfDay = "afternoon";}

78

Page 6: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

Gunakan shortcut Alt-Shift-F melakukan indent kode secara

benar. Indent secara manual dilakukan dengan memberikan tanda

comment lines yang dimulai dengan “//”. Gunakan kunci Tab untuk

indent.{Calendar merupakan kelas Java yang berisi tanggal terkini dan informasi waktu. Ketika method getInstance() dipanggil, maka akana dimunculkan tanggal system terkini dan waktu yang disimpan dalam objek myCalendar. Objek jam Calendar dapat diekstraksi dengan method get().

Sekali dipanggil jam, maka lojik kondisional dapat diputuskan untuk hal seperti sebelum tengah hari, antara tengah hari dan jam 6 sore, dan setelah jam 6 sore. Dapat pula dipanggil variable string partOfDay.}

4.1.4 Mengimpor ReferenceDapat dilihat bahwa tanda merah pada gelembung kuning di

sisi kiri menunjukkan adanya masalah.

Pindahkan kursor diatas gelembung kuning yang pertama dan

lakukan klik-kiri pada mouse.

79

Page 7: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

Pilih Add import for java.util.Calendar. Ingat bahwa statemen

import java.util.Calendar; ditambahkan ke bagian atas program dan

semua tanda merah dan kuning akan menghilang. Kode secara

sintak telah diperbaiki.

{Masalahnya adalah Netbeans tidak dapat menemukan kelas Calendar yang diacu (reference). Namun, ada saran dimana tempat menemukan. Ketika menerima saran, tambahkan statemen import pada kode.}

Sisi kanan sebelum statemen return “”; tambahkan kode

yang menetapkan bulan saat ini:

80

Page 8: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

Kode hasil kopi dan paste seperti ini :

// Determine the current monthint month = myCalendar.get(Calendar.MONTH);

Juga dapat digunakan Alt-Shift-F untuk mempercantik

tampilan.

Sekarang method greet() dapat diakhir dengan menambahkan

lojik untuk membangun message untuk return. Ingat bahwa lojik

ditambahkan pada akhir method dan statement asli return telah diganti

dengan yang baru:

// Create greetingString greeting = "Hello, " + name + " Have a great " + partOfDay; greeting += ". Time goes fast. We are already in month " + month; greeting += " of the year!";System.out.println("Greeting is: " + greeting);return greeting;

Disini pada bagian bawah method tampak :

Maka kelas Greeter secara utuh akan terlihat :

81

Page 9: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

{Disini kode untuk untuk kecocokan cutting dan pasting.

Ini tampak lucu dengan menggunakan operator “+” pada se kumpulan kata-kata. Ini merupakan cara cepat untuk menggabungkan sekelompok kata-kata untuk membuat kalimat. Ingat bahwa nilai yang disisipkan untuk variable partOfDay dan month yang digabungkan.

Gunakan Alt-Shift-F untuk melakukan reformat kode.

82

Page 10: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

Ingat bagaimana editor Java akan memberi tanda warna pada statemen, untuk kata cadangan akan berwarna biru, dan variable string akan berwarna hijau. }

4.1.5 Menguji Kelas JavaUntuk menguji method greet() diperlukan tambahan pada

method main seperti dibawah ini. Tambahkan kode disisi kanan seteleh

baris public class “Greeter {“ :

public static void main(String[] args) { Greeter greeter = new Greeter(); greeter.greet("Mickey Mouse");}

Disini merupakan tambahan pada bagian atas kelas Greeter :

Untuk menguji kelas, perlu menjalankan method main().

Sehingga klik pada kepala panah warna hijau pada bagian atas

window.

Method greet() berjalan dan dapat dilihat dibahwa hasil dari

panel Output:

83

Page 11: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

Hasilnya terlihat seperti ini:

Dari hasil terlihat masih ada masalah yaitu tidak ada message

dari Mickey Mouse.

Secara default, ketika membuat proyek aplikasi Java baru, maka

kelas Main secara otomatis juga akan dibuat. Ini dapat dilihat dengan

melakukan ekspansi hirarki GreeterJavaProject:

84

Page 12: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

Kelas Main menjadi “Main Class” yang berjalan secara default,

kapanpun menggunakan chevron hijau. Lakukan (Run Main Project)

untuk project ini.

Kemudian dijalankan Main dulu, setelah itu baru dijalankan

Greeter. Ini merupakan kerangka kode kosong di dalam kelas Main.

Kemudian jalankan kode Greeter. Untuk memperbaiki adanya

error, lakukan klik kanan pada GreeterJavaProject pada panel Projects

dan pilih Properties.

Seperti tampak pada gambar di bawah, pilih kategori Run dan

pada field Main Class gunakan tombol Browse untuk memilih Greeter

sebagai Main Class:

Gunakan ikon chevron hijau lagai untuk melakukan pengujian

dan akan diketahui luaran di panel Output seperti berikut ini :

Greeting is: Hello, Mickey Mouse Have a great afternoon. Time goes fast. We are already in month 8 of the year!

4.1.6 Debugging Aplikasi Java 85

Page 13: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

Tetapi ternyata masih ada bug. Sekarang akan dicoba untuk

menemukan bug tersebut dan memperbaikinya. Untuk memperbaiki

bug maka akan digunakan debugger melalui langkah-langkah yang hati-

hati dalam melakukan eksekusi dari method greet():

Pada editor Java, temukan pada baris:

Calendar myCalendar = Calendar.getInstance();

Pada margin di sisi kiri baris kode, klik sekali untuk menandai

breakpoint. Maka baris kode akan disorot warna merah:

{Bukankah bulannya masih terlihat keliru?

Masalah ini dapat ditemukan tanpa menggunakan debugger, tetapi hal ini akan memberi peluang untuk melakukan eksplorasi debugging.

Breakpoint merupakan statemen dalam program dimana eksekusi dihentikan sementara (pause) pada saat program dijalankan dengan debugging dalam kondisi menyala. Ketika eksekusi sampai pada bagian breakpoint, akan terlihat seputar variable untuk melihat bagian dalam programnya.}

86

Page 14: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

Lakukan eksekusi dengan debugger dengan melakukan klik

pada ikon Debug Main Project pada bagian atas editor.

Akan terlihat eksekusi terhenti pada breakpoint dan baris

kode disorot warna hijau:

{Jika panel Local Variables tidak terlihat, maka pilih Windows / Debugging / Local Variables untuk menampilkannya.

“Step Over” memungkinkan untuk berpindah eksekusi ke depan ke baris berikutnya. Eksekusi akan terhenti lagi dan akan terlihat lagi seputar variabel.}

Temukan panel Local Variables pada bagian bawah jendela.

Ingat bahwa variable name sekarang mempunyai nilai “Mickey

Mouse”.

Temukan kendali debugger pada bagian atas jendela dan klik

sekali pada ikon Step Over:

Terlihat bahwa debugger berpindah ke bawah ke kode yang

menetapkan jam saat ini. Baris kode ini kemudian ditandai dengan

warna hijau.87

Page 15: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

Klik Step Over lagi dan lihat pada panel Local Variables untuk

melihat nilai dari variable hour.

Dapat dilihat nilai pada panel Local Variables berubah ketika

berpindah ke kode time. Variabel partOfDay akan diatur berdasarkan

aliran melalui statemen if/else.

Lakukan klik Step Over sampai ke baris kode berikut:

int month = myCalendar.get(Calendar.MONTH);

Lompati kode int month =

myCalendar.get(Calendar.MONTH); dan lihat nilai untuk variable

month variable seperti tampak pada panel Local Variables.

Akhirnya ditemukan nilai month yang salah. Jika ini February,

maka month bernilai 2, bukan 1.

Klik kendali debugger Continue untuk mengakhiri sesi

debugging.

Seperti sebelumnya, akan tampak tampilan greeting pada

panel Output mengikuti baris kode:

System.out.println("Greeting is: " + greeting);

88

Page 16: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

Sehingga, apa masih ada yang salah dengan baris kode ini?:

int month = myCalendar.get(Calendar.MONTH);

Sekarang gunakan built-in code dan dokumentasi untuk

menhawab masalah ini.

4.1.7 Melengkapi Kode

{“Code completion” merupakan fitur IDE standard yang akan secara otomatis membantu dalam melengkapi staemen kode. Pada kasus ini, editor mengetahui myCalendar sebagai instantiasi dari kelas Calendar sehingga code completion menunjukkan atribut dan method yang tersedia.}

Letakkan posisi kursor pada editor di bagian akhir dari baris int

month = myCalendar.get(Calendar.MONTH) dan tekan Enter untuk memulai

baris baru. Kemudian ketikkan: myCalendar

Sekarang, tekan kunci period ketika mengetikkan sisa kode.

Kemudian, pause. Fitur code completion akan muncul dan terlihat

jendela pop-up.

4.1.8 Dokumentasi Kelas Java{Dokumentasi untuk definisi kelas Java disebut “javadoc.” Pada NetBeans, code completion dan javadoc ditampilkan bersama sehingga terbuka kemungkinan melengkapi statemen yang berkaitan dengan dokumentasi.}

89

Page 17: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

Seperti yang ditunjukkan diatas, lakukan scroll down pada

atribut MONTH dan klik pada atribut itu. Dokumentasi pada display

diatas berubah. Ingat bagaimana MONTH didefinisikan:

“The first month of the year in the Gregorian and Julian calendars is JANUARY which is 0.”

90

Page 18: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

Penjelasan ini merupakan masalahnya. Method memberikan

return nilai kurang dari yang diinginkan:

myCalendar.get(Calendar.MONTH)

Perbaikannya cukup sederhana yaitu menambah nilai 1 pada

return get(), sehingga cukup lakukan edit pada baris ini:

int month = myCalendar.get(Calendar.MONTH);

menjadi:

int month = myCalendar.get(Calendar.MONTH) + 1;

Juga hapus kode pada myCalendar.

Lakukan Save All.

Lakukan test ulang pada kelas Greeter dengan melakukan klik

pada ikon Run Main Project.

Lihat pada panel Output panel, angka month sudah terlihat

benar:

Ingat bahwa NetBeans telah mengetahui perubahan kode yang

dibuat dank ode yang diperlukan untuk melakukan kompilasi ulang

sebelum dieksekusi. Sehingga ketika melakukan klik pada Run Main

Project, maka akan menampilkan langkah kompilasi secara otomatis.

91

Page 19: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

{NetBeans memanfaatkan utility Ant untuk melakukan kompilasi, deployment dan ekseskusi. Skrip Ant tersusun dari tasks dan tiap task dapat mendeklarasikan ketergantungan pada task lain.

Ketika menjalankan pilihan menu Run Main Project, Ant akan menjalankan task yang dieksekusi yang sudah diselesaikan sebelum eksekusi yang sesungguhnya.}

4.2 Membuat User Interface JavaPada proyek ini , akan dibangun Java user interface yang

menjalankan method greet() pada kelas Java Greeter. GUI ini

mempunyai field entry data untuk menginput nama user dan tombol

Greet yang akan meminta method greet() untuk membuat dan

menampilkan greeting yang telah dikustomisasi. User interface yang

dibangun ini pada proyek yang sama seperti yang digunakan pada

proyek sebelumnya.

4.2.1 Membuat Layout{Kelas user interface merupakan kelas Java sama seperti yang telah dibuat pada project akhir, namun kelas ini menurunkan behavior dari kelas induk yang dinamakan JFrame }

Buat kelas Java yang baru untuk user interface dengan

melakukan klik-kanan pada GreeterJavaProject pada panel Projects

dan pilih New / JFrame Form. Jendela wizard New JFrame Form

akan muncul.

Untuk Class Name, ketik: GreeterUI dan untuk Package, ketik :

ui

92

Page 20: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

Klik Finish dan akan terlihat file GreeterUI.java ditambahkan ke

hirarki proyek. Kanvas design akan muncul. Akan ditambahkan widget

user interface di kanvas ini.

Drag dan drop komponen Label dari bagian Swing Controls

dari panel Palette ke kanvas. Label (jLabel1) akan ditambahkan ke

layout. Klik-double pada widget dan ubah teks label menjadi Name:{Jika panel Palette tidak tampak, gunakan pilihan menu bar Window / Palette untuk menampilkannya. Pada saat melakukan drag objek palette ke kanvas, kode Java untuk komponen trsebut secara otomatis akan di-generated.}

Drag komponenText Field dari bagian Swing Controls dari

panel Palette ke kanvas. Drop di sebelah kanan dari label Name. Text

field (jTextField1) akan ditambahkan.

Klik pada widget jTextField1 dan terlihat panel Properties

menunjukkan nilai terkini. Hapus nilai pada property Text karena tidak

dibutuhkan.

Klik pada control Code pada panel Properties dan ubah property

Variable Name dari text field dari jTextField1 menjadi nameTextField

{ Jika panel Palette tidak tampak, gunakan pilihan menu bar Window / Palette untuk menampilkannya.

Jika tanpa sengaja melakukan klik-double pada jTextField1, maka akan masuk ke view Source. Lakukan klik ke kendali Design pada pojok kiri atas dari editor untuk kembali lagi ke mode Design.

Dengan penamaan ulang field entri, maka nama variable pada kode akan lebih bermakna}

93

Page 21: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

Klik pada kontrol Properties pada panel Properties. Untuk text

field ubah nilai property columns menjadi : 30.

{Ini akan mengatur panjang text field yaitu 30 characters. Widget pada kanvas juga akan seketika mengikuti.}

Drag widget Button ke dalam kanvas dan di dalam jendela

Properties dan drop dibawah text field. Ubah property text dari jButton1

menjadi : Greet Ini akan merubah label button pada kanavas.

{Jika tanpa sengaja melakukan klik-double pada tombol Greet maka akan berubah ke mode Source. Klik kendali Design untuk kembali ke mode Design }

Dan akhirnya, drag widget Text Field dibawah button sehingga

dapat ditampilkan greeting yang dihasilkan.

Hapus nilai di dalam property text dari text field karena ini

merupakan tempat greeting akan ditampilkan.

94

Page 22: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

Klik pada control Code dan ubah property Variable Name dari

text field dari jTextField1 menjadi: greetingTextField .

{Sekarang, nama text field lebih mempunyai arti dalam kode Java.}

Kembali ke area Properties untuk text field, dan ubah nilai

property columns menjadi 50.

{Halini memberikan ruang yang lebih longgar untuk greeting yang akan dihasilkan.}

Atur ulang layout sehingga tampak seperti ini:

4.2.2 Menambah Event Handler Behavior Sekarang tambahkan lojik untuk button handler untuk meminta

method greet() dari kelas Greeter.

95

Page 23: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

Klik-double pada button Greet untuk masuk ke mode Source.

Akan terlihat bahwa editor Java ditampilkan dan kursor diposisikan di

dalam button's handler bernama jButton1ActionPerformed.

{ “button handler” merupakan sebuah event handler yang akan memerangkap klik mouse, misalnya, serta menyediakan lojik yang akan diminta.}

Gantikan teks placeholder ( // TODO add your handling

code here:) dengan kode berikut ini:

String name = (String) nameTextField.getText(); Greeter myGreeter = new Greeter();String greeting = myGreeter.greet(name);greetingTextField.setText(greeting);

Gunakan Alt-Shift-F untuk reformat kode.

{Setelah melakukan copy dan paste pada kode ini, gunakan Alt-Shift-F untuk melakukan reformat sehingga baris indent akan tampak menarik, sehingga kode lebih dapat dibaca dan lebih mudah untuk di debug.}

Ada beberapa error yang ditunjukkan oleh ikon kuning dan

merah pada margin kiri dari editor.

Klik bolam (pentol) kuning pada gambar dibawah dan pilih Add

import for greeting.Greeter :

{Statemen berikut ini ditambahkan pada bagian atas dari kelas: import greeting.Greeter;}

96

Page 24: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

Statemen import ditambahkan pada bagian atas dari kelas

GreeterUI dan semua tanda error lenyap.

Lakukan penyimpanan dengan Save All.

Klik-kanan pada GreeterJavaProject dan pilih Clean and Build

option untuk kompilasi dua kelas (Greeter dan GreeterUI).

Perhatikan panel Output untuk mengecek pesan error.

{Clean and Build berarti menghapuskan bebera kode dan menampilkan kompilasi lagi.}

Sekarang kelas GreeterUI telah ditambahkan pada

GreeterJavaProject, GreeterUI (bukanGreeter) seharusnya menjadi

kelas main pada proyek. Seperti yang telah dijelaskan, kelas main

merupakan kelas yang secara otomatis diawali ketika proyek

running.

{ Clean and Build menghasilkan pesan error yang menunjukkan bahwa directory tidak dapat dihapus.

97

Page 25: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

Karena itu lebih baik gunakan pilihan Build saja, daripada Clean and Build.}

Sekarang akan diubah Main Class untuk GreeterJava Project

dari Greeter menjadi GreeterUI.

Klik-kanan GreeterJavaProject pada panel Projects dan pilih

Properties. Jendela Project Properties akan ditampilkan.

Klik node Run pada hirarki di sebelah kiri untuk menampilkan

rincian cara proyek ini akan dieksekusi.

Temukan field kelas Main, klik pada button Browse dan pilih

kelas ui.GreeterUI. Klik button Select Main Class dan klik OK.

Sekarang, ketika proyek running, maka GreeterUI yang akan

dieksekusi pertama kali.

{“ui” merupakan nama paket yang ditetapkan ketika membuat kelas GreeterUI.}

Klik Ok untuk mengabaikan jendela Project Properties window.

Lalu lakukan save all lagi jika diperlukan.

4.2.3 Menguji Java User InterfaceKlik pada ikon Run Main Project (chevron hijau) pada bagian atas

jendela.

Jendela user interface akan muncul. Ketik nama pada field Name

dan tekan button Greet. Greeting yang diharapkan akan muncul pada

field text field dibawahnya:

98

Page 26: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

Baru saja dibuat Java user interface yang berkolaborasi

dengan kelas Greeter untuk menampilkan greeting yang

dikustomisasi.

Tutup jendela greeting dengan klik pada X merah di sisi kanan

atas.

Selanjutnya akan dibuat dan ditest web service yang

mengekspose Greeter ke klient non-Java (seperti klien SOAP).

{Dengan kata lain, Greeter POJO akan dibungkus dengan sebuah web service. POJO adalah singaktan dari “Plain Old Java Object.”}

4.3 Membangun Web ServicePada Project sebelumnya, telah dibangun kelas Greeter dengan

method greet() yang dapat menghasilkan pesan selamat datang.

Pada Project 2, telah dibuat user interface untuk memanggil Greeter

dan menampilkan hasil method greet() pada user interface. Sekarang

99

Page 27: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

kelas Greeter hanya dapat diakses melalui client Java yang berjalan

pada mesin JVM yang sama.

Yang dibutuhkan adalah Greeter yang tersedia untuk berbagai

client yang berjalan di manapun. Untuk kebutuhan tersebut, telah ada

teknologi web services. Pada proyek ini, kelas Greeter akan

di”bungkus” dalam Enterprise JavaBean (EJB). Kemudian EJB akan

diekspose sebagai endpoint web service. Dengan adanya web

services berbasis SOAP maka kelas Greeter akan secara meluas

dapat diakses.

4.3.1 Membuat Project EJB

{Modul EJB merupakan paket Java EE yang berisi Enterprise JavaBeans (EJB). EJB merupakan komponen Java pada sisi server yang berjalan pada sebuah server aplikasi. EJB dirancang sebagai rumah lojik yang digunakan dalam sebuah aplikasi.}

Buat proyek baru dengan memilih File / New Project. Wizard New

Project akan muncul.

Untuk Categories, pilih JavaEE. Untuk Projects, pilih EJB

Module. Kemudian, klik Next.

Untuk Project Name, ketik GreeterEJBProject

Klik Next dan kemudian Finish dan abaikan jendela wizard.

GreeterEJBProject akan muncul pada panel Projects.

100

Page 28: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

Untuk membuat EJB, klik kanan node GreeterEJBProject

dan pilih New / Session Bean. Jendela wizard New Session

Bean akan muncul.

Untuk EJB Name, ketik GreeterEJB

Untuk Package, ketik greeting

Klik Finish to untuk menerima nilai defaults dan abaikan jendela

wizard. Kode GreeterEJBBean.java akan muncul di editor:

{NetBeans menaruh komentar pada kode yang di-generated sehingga dapat diketahui letak kode yang akan disisipkan. Komentar tersebut akan diganti dengan menambahkan sebuah operasi (behavior atau method) untuk kelas ini.}

Posisikan cursor pada blank dibawah komentar, klik kanan dan

pilih Insert Code / Add Business Method. Jendela wizard Add Business

Method akan muncul.

Untuk Name, ketik: greet

Untuk Return Type, ketik: java.lang.String

Gunakan tombol Add untuk menambah parameter input

java.lang.String dan ketik name

101

Page 29: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

Pilih OK dan abaikan jendela wizard. Method greet() akan

ditambahkan ke EJB.

Hapus dua baris komentar dan EJBI akan terlihat seperti ini:

Sekarang di dalam method greet() yang baru, akan diinstantioasi

kelas Greeter dan jalankan method greet().

102

Page 30: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

Ganti kode return null; dengan kode berikut :

Greeter myGreeter = new Greeter();String greeting = myGreeter.greet(name);return greeting;

Gunakan Alt-Shift-F untuk melakukan reformat kode. Ingat bahwa

adanya warna kuning dan merah pada margin kiri, merupakan tanda

adanya masalah:

Pindahkan kursor pada bagian atas dari ikon merah di margin kiri

dan diketahui bahwa editor tidak dapat menemukan kelas Greeter.

Karena itu diperlukan penambahan kelas GreeterJavaProject sebagai

library dalam GreeterEJBProject.

{Untuk baris pertama disebut sebagai “constructor” untuk kelas Greeter. Konstruktor ini menciptakan instance dari kelas. Kita akan menyimpan pointer yang merupakan instance dalam sebuah variable yang dinamakan myGreeter.

Bari kedua disebut method greet() yang akan melewatkan nama input. Hasil dari method greet() disimpan pada variable yang dinamakan “greeting”

103

Page 31: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

Statemen return menyederhanakan nilai yang dilewatkan dari variable greeting.}

4.3.2 Menambah Library ke ProjectKlik kanan pada node GreeterEJBProject di dalam panel

Projects dan pilih Properties. Jendela Project Properties akan

muncul.

Pilih node Libraries pada panel kiri. Kemudian, klik tombol

Add Project dan navigasikan ke GreeterJavaProject, kemudian pilih

dan klik tombol Add Project JAR Files. Akan tampak:

Klik OK untuk mengabaikan jendela Properties.

Maka NetBeans akan “memakan” library dan ikon merah tanda

error akan hilang dari editor.

104

Page 32: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

{Ini akan memungkinkan kelas-kelas pada GreeterEJBProject untuk mencapai ke dalam GreeterJavaProject dan memanfaatkan kelas ini.}

4.3.3 Membuat Web Service{Web service merupakan kemampuan sisi server yang dapat di-invoke dengan mengirimkan sebuah dokumen XML (diformat mengikuti aturan dalam SOAP specification). Web service menerjemahkan XML ke dalam input yang diperlukan, melakukan tugasnya dan membuat dokumen XML SOAP yang berisi hasil. Dokumen XML dikembalikan ke klien yang dipanggil web service.Klien web service client tidak memperdulikan bagaimana cara kerjanya, sepanjang ia dapat kembalian berupa XML dalam SOAP.}

Sekarang telah ada EJB yang dapat “membungkus” dan

bertindak sebagai web service. Kemudian akan dibuat web service

berdasar EJB.

Klik kanan GreeterEJBProject dan pilih New / Web Service.

Jendela wizard New Web Service akan muncul.

Untuk Web Service Name, ketik GreetingService

Untuk Package, pilih greeting dari drop down list.

Klik pada radio button untuk Create Web Service from Existing

Session Bean dan gunakan tombol Browse untuk memilih

GreeterEJBBean:

105

Page 33: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

Klik tombol Finish. Web service ditambilkan di kanvas utama.

Lihat kode yang dihasilkan:

{Baris @ merupakan “annotations” yang memungkinkan kode java melakukan beberpa code generation pada saat kompilasi. Pada kasus ini, annotations memberitahu bahwa GreetingService calls adalah berupa stateless EJB yang dapat diakses sebagai web service.

Di dalam method greet() web service, tampak hasil panggilan dari method EJB's greet().}

106

Page 34: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

Lakukan ekspansi pada node Web Services dibawah

GreeterEJBProject dalam panel Projects untuk melihat web service

yang terdaftar disini.

{Perhatikan panel Output untuk pesan “BUILD SUCCESSFUL” ketika clean and build telah lengkap. Clean and Build.}

Lakukan ekspansi pada node Web Services dibawah

GreeterEJBProject dalam panel Projects untuk melihat web service

yang terdaftar disini.

Lakukan Save All .

Lakukan kompilasi kode GreeterEJBProject dengan klik-kanan

pada node GreeterEJBProject dan pilih Clean and Build (atau Build

saja).

Deploy GreeterEJBProject ke server aplikasi GlassFish dengan

klik-kanan GreeterEJBProject dan memilih pilihan Undeploy and

Deploy.

107

Page 35: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

Dengan EJB yang dideploy sebagai pembungkus web services,

sekarang dapat ditest dengan mengeksekusi test client untuk web

service.

{Butuh waktu sebentur ketika melakukan deploy untuk pertama kali, karena server aplikasi perlu dinyalakan sebelum modul EJB dapat dideploy. Perhatikan panel Output.}

4.3.3 Menguji Web Service NetBeans akan memudahkan testing web service dengan

membuat halaman web untuk test yang dapat memasukkan nilai

input dan memanggil operasi web service.

Klik-kanan node GreetingService dibawah Web Services pada

GreeterEJBProject dan pilihTest Web Service pada menu pop-up.

108

Page 36: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

Halaman browser akan tampak dan menyediakan test client. Ketik

nilai untuk name (misalnya Mickey Mouse) pada field kosong. Pilih

tombol greet.

Halaman hasil akan muncul. Ingat bahwa web service

menghasilkan nilai yang diharapkan:

Sekarang lihat ulang apa yang telah dikerjakan. Web service

menyediakan “pembungkus” yang menjalankan GreeterEJBBean yang

bekerjasama dengan method Greeter's greet().

109

Page 37: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

Karena web services menggunakan dokumen XML sebagai

“lingua franca” untuk komunikasi, maka method greet() sekarang dapat

dijalankan oleh berbagai client yang dapat melakukan pemanggilan

web service. Banyak clients dapat membuat pemanggilan web services

karena kemampuan SOAP/HTTP tersedia pada semua platform.

Pada proyek selanjutnya, akan didemokan kemampuan client web

service dengan membuat user interface berbasis browser untuk

menjalankan GreetingService.{Ingat bahwa web service menerima dokumen XML input, melakukan beberapa pemrosesan dan mengembalikan result dalam bentuk dokumen XML.Hasilnya, perhatikan bahwa bagian SOAP Request menunjukkan input dikirimkan oleh tester. Bagian SOAP Response menunjukkan output yang diterima dari hasil eksekusi method web service.}

4.4.4 Membangun Interface BrowserDengan menempatkan web service pada akhir proyek, akan

dibuat sebuah service yang dapat diakses secara universal. Semua

consumer butuh melakukan pengiriman pesan SOAP XML dan

mengirim kembali hasil dalam pesan SOAP XML. Pada proyek ini,

akan dibangun user interface berbasis browser yang menyediakan

client universal untuk menjalankan web service.

{Kita akan menaruh user interface dalam proyek baru sebab jenis proyek yang berbeda dari proyek Java dan EJB telah dibuat diawal. Pada saat ini, akan dibuat proyek apalikasi web. }

110

Page 38: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

Buat proyek baru untuk client berbasis browser dengan memilih

File / New Project. Jendela wizard New Project akan muncul.

Untuk Categories, pilih Java Web dan untuk Projects, pilih Web

Application dan klik Next

Untuk Project Name, ketik GreeterWebProject dan klik Next.

Klik Next lagi untuk menerima default pada Server dan Context

Path.

Klik pada check box untuk memilih Visual Web JavaServer

Faces. Klik Finish. Wizard akan lengkap dan GreeterWebProject akan

tampak pada panel Projects.

{NetBeans membuat miudah dalam menggunakan teknologi JavaServer Pages (JSP) JavaServer Faces (JSF) untuk membuat user interface berbasis browser. JSP adalah komponen yang menghasilkan halaman user interface untuk aplikasi web. Komponen JSF diguankan dalam halaman JSP untuk menyediakan visual widgets (seperti text fields dan buttons).}

Buat user interface berbasis dengan klik-kanan pada

GreeterWebProject dan pilih New / Visual Web JSF Page. Jendela

wizard akan muncul.

111

Page 39: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

Untuk File Name, ketik GreeterWebUI dan pilih Finish.

Jendela wizard akan tertutup, file GreeterWebUI.jsp akan

ditambahkan ke hirarki proyek dan kanvas desain akan muncul.

Dari palette, lakukan drag-drop widget Label ke kanvas. Ubah

label menjadi Name:

Drag-drop widgetText Field dari palete ke kanvas. Tempatkan di

sebelah kanan Name:

Pada panel Properties, ubah property id menjadi nameTextField

Atur property columns menjadi 30

Drag-drop widget Button ke kanvas, dan tempatkan dibawah text

field.

Ubah label tombol (Text property) menjadi Greet

Drag-drop Text Field lain ke kanvas dibawah tombol.

Ubah property text field – untuk id, ketikkan greetingTextField dan

untuk columns, ketik 120

Atur ulang komponen sehingga layout akan tampak seperti ini:

Simpan dengan melakukan Save All.

Klik pada pilihan JSP pada bagian atas kanvas untuk melihat

kode JavaServer Pages yang dibuat NetBeans didasarkan pada layout.

112

Page 40: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

Sintaks JSP akan menetapkan bagaimana HTML dihasilkan dan

dikirim ke browser.

{Perlu dilakukan klik-kanan pada kanvas dan mengeksplorasi pilihan Align. Snap to Grid juga berguna. Jika tidak menginginkan text field dapat diubah, maka lakukan disabled property untuk greetingTextField.}

Klik pada pilihan Java view (sebelah JSP view) untuk melihat

kode Java pada sisi server yang dihasilkan NetBeans. Kode ini akan

merespon interaksi user dari halaman HTML.

Membuat Klien Web ServiceSeperti yang telah dikerjakan pada Java user interface, masih

diperlukan lojik untuk menangani action dari tombol Greet.

Kembali ke view Design dengan klik pada kendali Design.

Klik-double pada tombol Greet pada kanvas untuk menampilkan

porsi penanganan action dari kode java. Pada posisi di dalam

button1_action() method:

113

Page 41: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

Pada saat user melakukan klik tombol Greet, maka akan

dipanggil web service yang dibuat pada proyek terakhir ini. Untuk

memanggil web service, maka perlu dibuat kode di sisi client yang

dapat mengakses web services melalui SOAP yang dikirim lewat HTTP

dan menerima kembali respon.

Kode klien dari web service akan dipanggil dari dalam button

handler, tetapi pertama kali perlu dibuat kode nya dulu. Kemudian

tinggalkan method button1_action() dan buat klien yang akan

memanggil method tersebut.

Pada node GreeterWebProject pada panel Projects, klik-kanan

dan pilih New / Other / Web Services / Web Service Client. Klik Next.

Jendela wizard akan muncul.

Pada field Project, gunakan button Browse untuk

menavigasi GreetingService pada GreeterEJBProject, pilih dan

klik OK.

Klik Finish untuk mengabaikan wizard.

Setelah pause sebentar, akan terlihat bahwa kode klien web

service client ditambahkan pada proyek:

114

Page 42: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

{Perhatikan tab Retrieve Output pada jendela Output untuk melihat web service diakses dank doe klien web service di-generated.

Akan terlihat bahwa GreetingService ditambahkan dibawah node Web Service References pada hirarki GreeterWeb Project.}

Menambah Event Handler BehaviorSekarang, telah ada kode klien untuk meminta dari button action

handler, perhatikan kembali jendela Java editor yang menampilkan

kode untuk halaman GreeterWebUI.jsp.

Posisikan kursor edit dibawah dua baris komentar pada method

button1_action() dan tekan Enter untuk membuat baris kosong baru.

Klik-kanan pada baris kosong dan pilih Web Service Client

Resources / Call Web Service Operation. Pilih Select Operation agar

jendela wizard Invoke muncul.

Pilih method greet pada bagian bawah hirarki dan klik OK:

115

Page 43: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

Kemudian kode untuk melakukan invoke klien web service akan

ditambahkan pada method button1_action().

Gunakan Alt-Shift-F untuk melakukan reformat kode, hapus dua

baris komentar pada bagian atas, maka method akan terlihat seperti ini:

116

Page 44: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

{Sekarang ada kerangka yang dapat memanggil sisi server web service. Kita perlu mengisi sisa dari kode event handler sehingga dapat memanggil dengan data yang diperlukan (name) dan menggunakan data (greeting).}

Lakukan penyimpanan dengan Save All.

Ubah kode pada handler sehingga method tampak seperti ini:

Ini merupakan keseluruhan kode di dalam blok try yang dapat

dicopy-paste:

greeting.GreetingService port = service.getGreetingServicePort(); String name = (String) nameTextField.getText();String greeting = port.greet(name); greetingTextField.setText(greeting); System.out.println("Result = " + greeting);

{Kode tersebut melakukan:- Dapatkan nilai yang dimasukkan ke dalam field Name pada UI- memanggil web service yang melewatkan nilai nama.

117

Page 45: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

- Meletakkan hasil greeting dalam field user interface.- mengirim greeting ke log file untuk tujuan debugging.}

Gunakan Alt-Shift-F untuk melakukkan reformat kode sehingga

lebih dapat tertata.

Akan terlihat ikon pada margin kiri yang menunjukkan masalah.

Jika mouse digeser diatasnya, akan terlihat bahwa editor tidak dapat

menemukan references untuk dua text fields: nameTextField dan

greetingTextField. Selanjutnya ini akan diperbaiki.

Klik pada tab Design untuk kembali ke kanvas layout. Tampak

ada masalah:

{Masalahnya terletak pada widget dalam layout JSP yang tidak berkaitan dengan representasi dalam kode Java dari JSF's “backing bean”}.

118

Page 46: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

Ini berarti bahwa kanvas layout tidak dapat didisplay ulang karena

ada sesuatu yang salah dengan kode Java.

Kembali ke view Java dan beri tanda comment (//) pada empat

baris kode pada blok try:

Fitur Add Binding Attribute menambahkan kode java sehingga

kita dapat mempunyai referensi yang berkaitan dengan objek seperti

nameTextField dan greetingTextField yang direferensi dalam layout

JSP. Misalnya, untuk text box nameTextField, baris berikut perlu

ditambahkan:

private TextField nameTextField =new TextField();

public TextField getNameTextField(){return nameTextField;}

public void setNameTextField(TextField tf){this.nameTextField = tf;

119

Page 47: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

}

Kembali lagi ke view Design dan layout tampak seperti

sebelumnya.

Klik kanan pada nameTextField (sebelah label Name) pada

kanvas layout dan pilih Add Binding Attribute dari menu pop-up.

Klik-kanan pada greetingTextField (di bawah button

Greet) dan pilih Add Binding Attribute.

Kembali ke view Java dan hilangkan tanda comment pada ke

empat baris diatas. Ingat bahwa setelah ini tidak lagi ada masalah

dengan kode.

Lakukan penyimpanan Save All.

Menguji Aplikasi WebLakukan kompile pada kode dengan melakukan klik-kanan

pada GreeterWebProject pada panel Projects dan pilih Clean

and Build.

Deploy aplikasi web ke server aplikasi dengan melakukan klik-

kanan pada GreeterWebProject dan pilih Deploy.{Perhatikan panel Output untuk pesan sebagai hasil dari Clean and Build and Undeploy and Deploy.

Clean and Build menghasilkan pesan error yang menunjukkan direktori tidak dapat dihapus. Untuk itu lakukan Build saja dan bukan Clean and Build.}

Lakukan test pada user interface berbasis browser dengan

melakukan klik-kanan pada GreeterWebProject dan pilih Run.

120

Page 48: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

Browser web akan terlihat dan tampak sebagai halaman kosong.

Apa yang terjadi?

Seperti pengalaman sebelumnya, masalah ini merupakan

masalah default pada proyek. Karena ini merupakan proyek web, ini

merupakan halaman JSP. Selanjutnya akan dicek apa default halaman

JSP untuk GreeterWebProject.

Programer Java EE sudah paham bahwa halaman yang pertama

kali ditampilkan adalah halaman yang ditetapkan pada seting welcome

file pada deployment descriptor.

Klik-double pada node web.xml dibawah hirarki

GreeterWebProject / Web Pages / WEB-INF pada jendela Projects.

View design dari deployment descriptor akan ditampilkan. Klik pada tab

Pages:

Lihat bahwa field Welcome Files diset untuk faces/Page1.jsp dan

ini bukan halaman yang diinginkan Dan ini adalah default yang

121

Page 49: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

disediakan ketika membuat aplikasi web baru. Halaman JSP yang

dibuat adalah GreeterWebUI.jsp dan tampak pada bagian Web Pages

dari proyek:

Selanjutnya gunakan view XML untuk membuat halaman

GreeterWebUI.jsp sebagai halaman default yang ditampilkan pertama

kali ketika user mengakses aplikasi. Gunakan fitur find (Ctrl-F) pada

view XML secara cepat dan lakukan scroll ke area welcome-file-list dari

deployment descriptor buat menjadi seperti ini:

{Untuk memudahkan melakukan copy dan paste, disini nilai baru: faces/GreeterWebUI.jsp}

122

Page 50: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

Lakukan penyimpanan dengan Save All.

Sekarang, aplikasi web sudah berubah sehingga perlu di deploy

ulang.

Setelah berhasil melakukan deploy ulang, coba jalankan lagi

GreeterWebProject

Halaman web yang diharapkan muncul sebagai halaman default.

Ketik nama di text field sebelah kanan Name.

Klik button Greet dan terlihat greeting dihasilkan dari web

services. Ini terlihat di bagian greetingTextField karena button action

handler:

123

Page 51: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

Selanjutnya lihat kode pada button action handler. Komentar pada

akhir baris mengingatkan tentang cara web service dapat dijalankan:greeting.GreetingService port = service.getGreetingServicePort(); // Get access to web service String name = (String) nameTextField.getText(); // Get the value in the name field String greeting = port.greet(name); // Use web service client to get the greeting from web service greetingTextField.setText(greeting); // Insert the returned greeting into the text field System.out.println("Result = " + greeting); // A debug statement to dump a message to the GlassFish log

Jika melakukan klik pada tab GlassFish V2 pada panel Output

panel pada bagian bawah jendela NetBeans, akan terlihat hasil dari

statemen System.out.println.

User interface berbasis web dijalankan pada server berbasis

Greeter POJO menggunakan berbagai layers. Selanjutnya akan ke

bagian Ringkasan dan akan direview berbagai layer tersebut.

124

Page 52: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

BAB 5Integrasi Basisdata

Studi kasus 2 ini mengacu pada penelitian ini Utomo et al (2009)

yang berusaha mengintegrasikan basisdata jarak jauh yang berada

diluar perusahaan dengan basisdata lokal di dalam perusahaan.

Integrasi basisdata dilakukan dengan melakukan select tabel dari

server basisdata jarak jauh, kemudian hasil dari select tabel tersebut

diinputkan ke tabel yang sudah ada di server basisdata lokal. Integrasi

ini dilakukan dengan menggunakan WS sebagai pembungkus

(wrapped) basisdata jarak jauh maupun lokal yang akan diintegrasikan.

WS tersebut kemudian diorkestrasi menggunakan BPEL dengan

menggunakan framework Java Business Integration. (Lihat Gambar

5.1)

Gambar 5.1 Bagan alir integrasi basisdata (Utomo et al, 2009)

Pada penelitian ini basisdata jarak jauh dibungkus (wrapped)

sebagai layanan dengan menggunakan WSDL, demikian halnya

125

Business Process Execution Language

Client

Sample DB (Remote

Dat abase)

XML File (Output.XML)

DBLOCAL (Local Dat abase)

Select name, email from Customer

name, email

Write to file

Insert email, nameinto ExtractCustomer

request

reply

Page 53: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

basisdata lokal juga dibungkus sebagai layanan-layanan. WSDL ini

digunakan sebagai antarmuka WS yang akan diorkestrasi

menggunakan BPEL. Penelitian ini telah berhasil mengambil data dari

server basisdata jarak jauh dan dimasukkan ke basisdata lokal dengan

menggunakan BPEL (Lihat Gambar 5.2).

Gambar 5.2 Integrasi basisdata menggunakan BPEL

Gambar 5.2 merupakan integrasi basisdata melalui komposisi

WS menggunakan BPEL. Semua tipe data yang dilewatkan melalui

BPEL merupakan WSDL. Pada gambar tersebut request dibuat oleh

client ke JBI Container. Request ini dilewatkan melalui Normalized

Message Router ke BPEL Service Engine. BPEL Service Engine

126

Page 54: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

kemudian melakukan request ke Database BC melalui NMR.

Database BC mengembalikan pesan ke File BC lagi melalui NMR.

File BC kemudian membuat request ke Database BC melalui NMR.

Akhirnya pesan dilewatkan ke client melalui NMR. Konsep penting

disini adalah NMR merupakan hub yang melakukan routing pesan

tidak hanya antara client dengan Binding Component, tetapi juga

antar Binding Component yang berbeda.

Agar komposisi WS dengan BPEL dapat dideploy ke server,

maka dibangun Aplikasi Komposit dan menambahkan aplikasi BPEL

tersebut sebagai modul JBI. Aplikasi Komposit merupakan bentuk

integrasi dan sekaligus pengembangan aplikasi. Tujuan utama

Aplikasi Komposit ini adalah menyediakan kontainer deployment

untuk berbagai jenis komponen JBI. Gambar 5.3, merupakan

Aplikasi Komposit, yang terdiri dari tiga panel yaitu WSDL Ports dan

Modul JBI, serta Service Units. Pada gambar tampak bahwa WSDL

ports diekspose melalui SOAP binding, File binding, dan Database

Binding.

127

Page 55: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

Gambar 5.3 Aplikasi Komposit

Setelah Aplikasi Komposit dideploy ke server, maka dapat

dilakukan pengujian dengan menggunakan Junit Test. Pada Gambar

5.4, menunjukkan bahwa pengujian telah berhasil.

Gambar 5.4 Hasil tes dengan Junit Test128

Page 56: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

Keberhasilan ini juga ditunjukkan dengan adanya pesan dari

SOAP response yang berasal dari aplikasi SOA. Pada direktori output

dapat ditemukan bahwa output.xml telah terbentuk (Gambar 5.5), dan

jika file ini dibuka akan tampak bahwa terdapat data-data yang berasal

dari basisdata melalui perintah select dari sebuah tabel.

Gambar 5.5 File Output.xml yang merupakan hasil dari select tabel

Selain itu dari hasil testing juga dihasilkan data yang berhasil di-

insert-kan ke basisdata lokal. Data tersebut berasal dari basisdata

jarak jauh. (Gambar 5.6)

129

Page 57: BAB 4 Membangun Web Services - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1545/5/BOOK_Wiranto Herry... · adalah membuat klien web service berbasis browser ... orang

Gambar 5.6 hasil dari select tabel yang di-insert ke basisdata lokal

Dengan demikian penelitian mengenai integrasi basisdata ini

dapat digunakan sebagai landasan untuk integrasi aplikasi yang lain,

dengan menggunakan berbagai protokol yang sudah disediakan oleh

framework JBI seperti protokol SOAP, JMS, File, dsb.

Java Business Integration (JBI) menyediakan landasan bagi

integrasi berbasis SOA. JBI ini menyediakan integrasi fungsi bisnis

yang diekspose sebagai layanan-layanan, dan dengan interaksi yang

decoupled. JBI menyediakan dukungan langsung bagi pengembangan

Aplikasi Komposit melalui mekanisme JBI service assemblies, yang

memungkinkan aplikasi dikomposisi secara langsung dari antarmuka

berbasis layanan dari suatu JBI service unit.

130