Aturan Praktikum: - Keterlambatan maksimal 10 menit - Hasil praktikum, selesai atau tidak selesai ditanggung mahasiswa - Nilai praktikum adalah nilai perorangan, sebagai tambahan nilai test atau quiz jika nilai test atau quiz kurang mencukupi - Mahasiswa login ke komputer - Persiapan dan penjelasan praktikum 10 menit - Praktikum dilakukan selama 70 menit terdiri dari praktikum sesuai modul - Hasil praktikum di-zip dan dikumpulkan - Sisa waktu 20 menit digunakan untuk tes kecil hasil praktikum, saat tes tampilan komputer adalah background desktop dan mahasiswa tidak diperkenankan menggunakan komputer dan melihat modul praktikum - Mahasiswa logout dari komputer - Praktikum selesai
SERVLET (BEGINNER) (Minggu 2 Praktikum I)
A. Sekilas J2EE
J 2EE adalah kumpulan teknologi yang cukup kuat dan berada di atas lingkungan J 2SE. J 2EE berbasis pada J ava2 yang berusaha untuk menyediakan sebuah lingkungan aplikasi yang bersifat reliable dan stabil serta dapat dijalankan pada beberapa lingkungan sistem operasi. Teknologi enterprise sebagai perkembangan dari lingkungan J ava2 difokuskan pada pemenuhan antarmuka yang standar dimana aplikasi J 2EE dapat menghasilkan sebuah aplikasi berbasis server yang tangguh (robust) dan tidak bergantung pada lingkungan sistem operasi yang digunakan.
J 2EE server menyediakan dua buah kontainer besar yaitu kontainer EJ B dan kontainer web dimana kontainer EJ B digunakan untuk mengelola dan mengeksekusi Enterprise bean yang juga disebut dengan bean dan kontainer web digunakan untuk mengelola dan mengeksekusi servlet serta JavaServer Pages atau yang disebut juga dengan J SP. Enterprise bean terdiri dari tiga jenis bean yang diantaranya adalah : www.gangsir.com Rosa Ariani Sukamto
Session Bean Entity Bean Message Driven Bean Package pada J 2EE dapat berupa Enterprise Archive (EAR), J ava Archive (J AR) yang merupakan kumpulan file dalam sebuah paket, dan Web Archive (WAR) dimana EAR biasanya merupakan gabungan dari file-file J AR yang biasa digunakan oleh bean, sedangkan WAR biasa digunakan oleh servlet dan J SP. J 2EE memiliki beberapa tipe modul yang diantaranya adalah sebagai berikut : EJ B, terdiri dari file-file class dari enterprise bean dan deskriptor dari EJ B deployment. EJ B biasanya menggunakan package berupa J AR dengan ekstensi file .jar. Web, seperti servlet dan J SP. Terdiri dari file-file class servlet atau file-file class yang dibutuhkan J SP, file gambar, file HTML, dan deskriptor dari web deployment. Package yang digunakan biasanya adalah WAR dengan ekstensi file .war. Aplikasi Klien, terdiri dari file class klien dan deskriptor klien. Package yang biasanya digunakan adalah J AR dengan ekstensi file .jar.
B. Sekilas Servlet
Servlet adalah program J ava yang berjalan pada webserver dengan pengaksesan model request-response. Daur hidup servlet dikelola oleh kontainer web. Servlet merupakan pondasi pengembangan aplikasi web dengan menggunakan bahasa pemrograman J ava. Karena servlet merupakan bagian dari J 2EE (Java 2 Enterprise Edition) maka servlet dapat menggunakan semua pustaka (library) standar J ava.
Kelas HttpServlet merupakan kelas turunan dari javax.servlet.Servlet yang melewatkan request dan respon melalui protokol HTTP. HttpServlet memiliki metode tambahan yaitu doGet() dan doPost() yang merupakan metode pengiriman request melalui protokol HTTP. Servlet adalah server side scripting dimana web server mengidentifikasi dan menjalankan skrip program yang disisipkan dalam dokumen web sehingga yang dikirim ke klien hanya berupa kode HTML-nya saja.
C. Alur hidup Servlet
Servlet dibangunkan pertama kali oleh kontainer web ketika ada request ke servlet kemudian servlet memproses request dan memberikannya ke web servlet dan kontainer web mengembalikannya ke user.
www.gangsir.com Rosa Ariani Sukamto
Alur hidup servlet diawali dengan metode init() yang dipanggil oleh kontainer setelah servlet diinisialisasi, kemudian kontainer web memanggil metode service() setelah servlet diinisialisasi, pada tahap ini servlet diijinkan mengakses request yang harus diproses oleh servlet dan menghasilkan respon. Kontainer web akan memanggil metode destroy() ketika kontainer web dimatikan atau servlet butuh membebaskan memori.
D. Implementasi J2EE
Sebelum melakukan instalasi terhadap semua perangkat lunak implementasi J 2EE, tool J 2SE harus telah diinstal pada komputer, variabel global J AVA_HOME harus telah diset, dan komputer telah di-restart setelah J AVA_HOME diset.
a. JBoss
Salah satu implementasi dari J 2EE adalah J Boss. J Boss besifat open source dan dapat di-download pada http://www.jboss.org. J Boss gratis untuk pengembangan dan deployment dan merupakan server aplikasi yang handal dan telah banyak digunakan. Sebelum menjalankan J Boss, pada komputer yang harus sudah terdapat Java Virtual Machine, jika belum maka komputer tersebut harus diinstal apa yang disebut dengat tool J 2SE seperti jdk. Baru setelah itu kopikan folder J Boss pada drive C. Untuk menjalankan J Boss, cukup dengan menjalankan C:\<folder J Boss>\bin\run.bat dan untuk menghentikannya tekan ctrl+C. Saat J Boss telah berhasil dijalankan maka akan muncul jendela seperti pada gambar di bawah ini. Dan jika J Boss telah start dengan benar maka akan muncul pesan Started in.
Komponen J 2EE yang akan di-deploy dengan menggunakan J Boss harus memiliki pemetaan komponen J 2EE tersebut untuk dikaitkan dengan J Boss. Biasanya pemetaan ini dimasukkan dalam file jboss-web.xml yang dalam pemaketannya pada servlet atau J SP masuk ke dalam direktori WEB-INF. Servlet atau J SP di deploy pada direktori C:\J Boss\.server\default\deploy\ dengan menyalin file .war ke direktori itu.
b. Server J2EE Sun
www.gangsir.com Rosa Ariani Sukamto
Server J 2EE Sun atau nama resminya Sun J ava System Application Server Platform merupakan implementasi dari J 2EE. Tools yang ada pada Server J 2EE Sun bukan merupakan bagian dari implementasi J 2EE, tujuannya lebih pada memberikan kenyamanan pada programmer.
Untuk melakukan instalasi Server J 2EE Sun cukup dengan menjalankan file installer-nya yang bisa di-download di http://java.sun.com/j2ee/. Server J 2EE Sun dijalankan (start) dengan menjalankan Start->All Programs->Sun Microsystems- >Application Server PE->Start Default Server. Untuk menghentikan Server J 2EE Sun, jalankan Start->All Programs->Sun Microsystems->Application Server PE- >Stop Default Server.\
Server Sun memiliki deploy tool untuk melakukan package terhadap modul servlet maupun J SP menjadi file .war dan men-deploy aplikasi ke server. Untuk menjalankannya setelah diinstal klik Start->All Program->Sun Microsystems- >Application Server PE->Deploytool maka akan muncul jendela pada gambar berikut.
Pada prinsipnya, men-deploy aplikasi pada server Sun hanya mengacu path dari file .war, maka jika sebuah file .war di deploy pada server Sun dan dihapus, maka file tersebut tidak dapat diakses lagi.
c. Apache Tomcat
Apache Tomcat merupakan implementasi dari teknologi Servlet dan J SP sehingga hanya dapat digunakan untuk men-deploy servlet dan J SP. Apache Tomcat merupakan proyek www.gangsir.com Rosa Ariani Sukamto
open source yang dapat di-download di http://jakarta.apache.org/tomcat. Instalasi Apache Tomcat dapat dilakukan dengan mengesekusi installer Apache Tomcat. Apache Tomcat dapat dijalankan dengan menjalankan Start->All Programs->Apache Tomcat->Monitor Tomcat hingga muncul jendela seperti pada gambar di bawah ini lalu klik tombol Start, begitu pula jika ingin menghentikan, klik tombol Stop.
Monitor Tomcat biasanya telah dijalankan secara otomatis dan untuk menampilkan jendela seperti pada gambar di atas bisa dengan mengeklik icon pada bagian kanan taskbar seperti pada gambar berikut:
Pada Tomcat file .war dapat disalin ke folder <INSTAL_TOMCAT>\webapps\ dan me- restart Tomcat.
E. Praktikum a. Persiapan Membuat direktori kerja dengan nama SI319-P2-1-Kelas-NIM misalnya SI319-P2-1-A-23507024 Di dalam direktori di atas, buat direktori Servlet untuk menyimpan file-file yang akan dibuat.
b. Membuat HelloServlet
Susunan file yang harus dibuat di dalam direktori Servlet adalah sebagai berikut: Direktori common o File build.properties www.gangsir.com Rosa Ariani Sukamto
o File targets.xml Direktori commonweb o File build.properties File berisi daftar properti yang akan digunakan build.xml o File targets.xml Direktori HelloServlet o Direktori src Berisi file-file source code o Direktori web Berisi file-file html, gambar, dll o File build.xml File konfigurasi yang akan digunakan untuk menetukan setting servlet o File sun-web.xml o File web.xml
File-file pada direktori common dan commonweb digunakan untuk melakukan kompilasi terhadap source code java.
Nama file: build.properties (pada direktori common)
j 2ee. home=C: / Sun/ AppSer ver j 2ee. t ut or i al . home=" C: / Ser vl et " sunone. home=${j 2ee. home} admi n. passwor d. f i l e=${j 2ee. t ut or i al . home}/ common/ admi n- passwor d. t xt admi n. host =l ocal host admi n. user =admi n admi n. por t =4848 ht t ps. por t =8181 domai n. r esour ces=" domai n. r esour ces" domai n. r esour ces. por t =8080 db. r oot =${j 2ee. home}/ poi nt base db. dr i ver =com. poi nt base. j dbc. j dbcUni ver sal Dr i ver db. host =l ocal host db. por t =9092 db. si d=sun- appser v- sampl es db. ur l =j dbc: poi nt base: ser ver : / / ${db. host }: ${db. por t }/ ${db. si d} db. user =pbpubl i c db. pwd=pbpubl i c ur l . pr op=Dat abaseName ds. cl ass=com. poi nt base. j dbc. j dbcDat aSour ce db. j vmar gs=- ms16m- mx32m
Yang harus diganti dari file di atas jika berbeda path adalah sebagai berikut:
j 2ee. home=C: / Sun/ AppSer ver [ pat h di mana sun appl i cat i on ser ver di i nst al ] j 2ee. t ut or i al . home=" C: / Ser vl et " [ pat h di r ekt or i ser vl et ]
www.gangsir.com Rosa Ariani Sukamto
Nama file: targets.xml (pada direktori common)
<pat h i d=" cl asspat h" > <f i l eset di r =" ${j 2ee. home}/ l i b" > <i ncl ude name=" j 2ee. j ar " / > </ f i l eset > </ pat h>
<t ar get name=" cl ean" > <del et e di r =" ${bui l d}" / > <del et e di r =" ${di st }" / > <del et e di r =" ${assembl e}" / > </ t ar get >
<pat h i d=" db. cl asspat h" > <f i l eset di r =" ${db. r oot }/ l i b" > <i ncl ude name=" *. j ar " / > </ f i l eset > </ pat h>
<t ar get name=" cr eat e- db_common" depends=" i ni t " descr i pt i on=" Cr eat e dat abase t abl es and popul at e dat abase. " > <j ava cl assname=" com. poi nt base. t ool s. t ool sCommander " f or k=" yes" > <j vmar g l i ne=" ${db. j vmar gs}" / > <ar g l i ne=" ${db. dr i ver } ${db. ur l } ${sql . scr i pt } ${db. user } ${db. pwd}" / > <cl asspat h r ef i d=" db. cl asspat h" / > </ j ava> </ t ar get >
<t ar get name=" admi n_command_common" > <echo message=" Doi ng admi n t ask ${admi n. command}" / > <sun- appser v- admi n command=" ${admi n. command}" user =" ${admi n. user }" passwor df i l e=" ${admi n. passwor d. f i l e}" host =" ${admi n. host }" por t =" ${admi n. por t }" asi nst al l di r =" ${j 2ee. home}" / > </ t ar get >
<t ar get name=" cr eat e- j dbc- r esour ce_common" > <ant cal l t ar get =" admi n_command_common" > <par amname=" admi n. command" val ue=" cr eat e- j dbc- r esour ce - - connect i onpool i d ${conpool . name} ${j dbc. r esour ce. name}" / > </ ant cal l > </ t ar get >
<t ar get name=" del et e- j dbc- r esour ce_common" > <ant cal l t ar get =" admi n_command_common" > <par amname=" admi n. command" val ue=" del et e- j dbc- r esour ce ${j dbc. r esour ce. name}" / > </ ant cal l > </ t ar get > www.gangsir.com Rosa Ariani Sukamto
<t ar get name=" depl oy- war " > <ant cal l t ar get =" admi n_command_common" > <par amname=" admi n. command" val ue=" depl oy ${war . f i l e}" / > </ ant cal l > </ t ar get >
<t ar get name=" undepl oy- war " > <ant cal l t ar get =" admi n_command_common" > <par amname=" admi n. command" val ue=" undepl oy ${exampl e}" / > </ ant cal l > </ t ar get >
<pr oper t y envi r onment =" env" / >
<t ar get name=" l i st pr ops" descr i pt i on=" Di spl ays val ues of some of t he pr oper t i es of t hi s bui l d f i l e" > <pr oper t y f i l e=" . . / . . / common/ admi n- passwor d. t xt " / >
<echo message=" Pat h i nf or mat i on" / > <echo message=" j 2ee. home = ${j 2ee. home}" / > <echo message=" j 2ee. t ut or i al . home = ${j 2ee. t ut or i al . home}" / > <echo message=" j 2ee. home = ${j 2ee. home}" / > <echo message=" env. Pat h = ${env. Pat h}" / > <echo message=" env. PATH = ${env. PATH}" / > <echo message=" " / > <echo message=" Cl asspat h i nf or mat i on" / > <echo message=" cl asspat h = ${env. CLASSPATH}" / > <echo message=" " / > <echo message=" Admi n i nf or mat i on" / > <echo message=" admi n. passwor d = ${AS_ADMI N_PASSWORD}" / > <echo message=" admi n. passwor d. f i l e = ${admi n. passwor d. f i l e}" / > <echo message=" admi n. host = ${admi n. host }" / > <echo message=" admi n. user = ${admi n. user }" / > <echo message=" admi n. por t = ${admi n. por t }" / > <echo message=" ht t ps. por t = ${ht t ps. por t }" / > <echo message=" " / > <echo message=" Domai n i nf or mat i on" / > <echo message=" domai n. r esour ces = ${domai n. r esour ces}" / > <echo message=" domai n. r esour ces. por t = ${domai n. r esour ces. por t }" / > <echo message=" " / > <echo message=" Dat abase i nf or mat i on" / > <echo message=" db. r oot = ${db. r oot }" / > <echo message=" db. dr i ver = ${db. dr i ver }" / > <echo message=" db. host = ${db. host }" / > <echo message=" db. por t = ${db. por t }" / > <echo message=" db. si d = ${db. si d}" / > <echo message=" db. ur l = ${db. ur l }" / > <echo message=" db. user = ${db. user }" / > <echo message=" db. pwd = ${db. pwd}" / > <echo message=" ur l . pr op = ${ur l . pr op}" / > <echo message=" ds. cl ass = ${ds. cl ass}" / > <echo message=" db. j vmar gs = ${db. j vmar gs}" / > www.gangsir.com Rosa Ariani Sukamto
</ t ar get >
Nama file: build.properties (pada direktori commonweb)
#war bui l d=bui l d sql . scr i pt =books. sql war . f i l e=${exampl e}. war assembl e=assembl e assembl e. war =${assembl e}/ war
Nama file: targets.xml (pada direktori commonweb)
<t ar get name=" pr epar e" depends=" i ni t " descr i pt i on=" Cr eat e bui l d di r ect or i es. " > <mkdi r di r =" ${bui l d}" / > </ t ar get >
<t ar get name=" copy" depends=" pr epar e" descr i pt i on=" Copy HTML and J SP pages" > <copy t odi r =" ${bui l d}" > <f i l eset di r =" web" > <i ncl ude name=" **/ *. ht ml " / > <i ncl ude name=" **/ *. j sp" / > <i ncl ude name=" **/ *. j spf " / > <i ncl ude name=" **/ *. j spx" / > <i ncl ude name=" **/ *. gi f " / > <i ncl ude name=" **/ *. xml " / > <i ncl ude name=" **/ *. t l d" / > <i ncl ude name=" **/ *. t ag" / > <i ncl ude name=" **/ *. j pg" / > <i ncl ude name=" **/ *. css" / > </ f i l eset > </ copy> </ t ar get >
<t ar get name=" cr eat e- war " depends=" bui l d" descr i pt i on=" Packages t he WAR f i l e" > <echo message=" Cr eat i ng t he WAR. . . . " / > <del et e f i l e=" ${assembl e. war }/ ${war . f i l e}" / > <del et e di r =" ${assembl e. war }/ WEB- I NF" / > <copy t odi r =" ${assembl e. war }/ WEB- I NF" > <f i l eset di r =" . " > <i ncl ude name=" *. xml " / > <excl ude name=" bui l d. xml " / > <excl ude name=" web. xml " / > </ f i l eset > </ copy> <copy t odi r =" ${assembl e. war }/ WEB- I NF/ cl asses/ " > <f i l eset di r =" ${bui l d}" > <i ncl ude name=" **/ *. cl ass" / > </ f i l eset > </ copy> www.gangsir.com Rosa Ariani Sukamto
<copy t odi r =" ${assembl e. war }/ WEB- I NF/ t ags" > <f i l eset di r =" ${bui l d}" > <i ncl ude name=" *. t ag" / > </ f i l eset > </ copy> <copy t odi r =" ${assembl e. war }/ WEB- I NF" > <f i l eset di r =" ${bui l d}" > <i ncl ude name=" *. t l d" / > </ f i l eset > </ copy> <copy t odi r =" ${assembl e. war }" > <f i l eset di r =" ${bui l d}" > <i ncl ude name=" *. j sp" / > <i ncl ude name=" *. gi f " / > </ f i l eset > </ copy> <war dest f i l e=" ${assembl e. war }/ ${war . f i l e}" webxml =" . / web. xml " f i l esonl y=" t r ue" > <f i l eset di r =" ${assembl e. war }" i ncl udes=" WEB- I NF/ **, *. j sp, *. gi f " / > </ war > <copy f i l e=" ${assembl e. war }/ ${war . f i l e}" t odi r =" . " / > </ t ar get >
<t ar get name=" copy- cl ock" depends=" bui l d" i f =" cl ock. exi st s" descr i pt i on=" Copi es cl ock cl ass f or bookst or e2" > <copy f i l e=" ${bui l d}/ cl ock/ Di gi t al Cl ock. cl ass" t odi r =" ${assembl e. war }/ cl ock/ " / > </ t ar get >
<t ar get name=" l i st pr ops- web" depends=" i ni t , l i st pr ops" descr i pt i on=" Li st pr oper t y val ues" > <echo message=" sql . scr i pt = ${sql . scr i pt }" / > <echo message=" conpool . name = ${conpool . name}" / > <echo message=" j dbc. r esour ce. name = ${j dbc. r esour ce. name}" / > </ t ar get >
Nama file: build.xml (dalam direktori HelloServlet)
<! DOCTYPE pr oj ect [ <! ENTI TY t ar get s SYSTEM " . . / common/ t ar get s. xml " > <! ENTI TY webt ar get s SYSTEM " . . / commonweb/ t ar get s. xml " > ] >
<pr oj ect name=" hel l o" def aul t =" bui l d" basedi r =" . " > <t ar get name=" i ni t " > <t st amp/ > </ t ar get >
<! - - Conf i gur e t he cont ext pat h f or t hi s appl i cat i on - - > <pr oper t y name=" exampl e" val ue=" hel l o" / >
<! - - Conf i gur e pr oper t i es - - > <pr oper t y f i l e=" . . / common/ bui l d. pr oper t i es" / > <pr oper t y f i l e=" . . / commonweb/ bui l d. pr oper t i es" / >
www.gangsir.com Rosa Ariani Sukamto
&t ar get s; &webt ar get s;
<t ar get name=" bui l d" depends=" copy" descr i pt i on=" Compi l e app J ava f i l es" > <j avac sr cdi r =" sr c" dest di r =" ${bui l d}" > <i ncl ude name=" **/ *. j ava" / > <cl asspat h r ef i d=" cl asspat h" / > </ j avac> </ t ar get >
</ pr oj ect >
Nama file: web.xml (dalam direktori HelloServlet)
<?xml ver si on=" 1. 0" encodi ng=" UTF- 8" ?> <web- app xml ns=" ht t p: / / j ava. sun. com/ xml / ns/ j 2ee" ver si on=" 2. 4" xml ns: xsi =" ht t p: / / www. w3. or g/ 2001/ XMLSchema- i nst ance" xsi : schemaLocat i on=" ht t p: / / j ava. sun. com/ xml / ns/ j 2ee ht t p: / / j ava. sun. com/ xml / ns/ j 2ee/ web- app_2_4. xsd" > <di spl ay- name>Hel l o</ di spl ay- name> </ web- app>
Nama file: sun-web.xml (dalam direktori HelloServlet)
<?xml ver si on=" 1. 0" encodi ng=" UTF- 8" ?> <! DOCTYPE sun- web- app PUBLI C " - / / Sun Mi cr osyst ems, I nc. / / DTD Appl i cat i on Ser ver 8. 0 Ser vl et 2. 4/ / EN" " ht t p: / / www. sun. com/ sof t war e/ appser ver / dt ds/ sun- web- app_2_4- 0. dt d" >
<sun- web- app> <cont ext - r oot >/ Hel l o</ cont ext - r oot > </ sun- web- app>
Nama file: HelloServlet.java (dalam direktori HelloServlet/src/)
i mpor t j avax. ser vl et . *; i mpor t j avax. ser vl et . ht t p. *; i mpor t j avax. nami ng. *; i mpor t j ava. i o. *; i mpor t j ava. r mi . Remot eExcept i on; i mpor t j ava. ut i l . l oggi ng. *; i mpor t j avax. r mi . Por t abl eRemot eObj ect ;
publ i c cl ass Hel l oSer vl et ext ends Ht t pSer vl et {
pr i vat e voi d wr i t ePage( Ht t pSer vl et Request r equest , Pr i nt Wr i t er out ) { out . pr i nt l n( " <ht ml >" + " <head><t i t l e>Hel l o</ t i t l e></ head>" ) ; out . pr i nt l n( " <body>" ) ; out . pr i nt l n( " <h3>Hel l o Wor l d! </ h3>" ) ; out . pr i nt l n( " <br ><hr ><br >" ) ; www.gangsir.com Rosa Ariani Sukamto
out . pr i nt l n( " </ body></ ht ml >" ) ; }
publ i c voi d doGet ( Ht t pSer vl et Request r equest , Ht t pSer vl et Response r esponse) t hr ows Ser vl et Except i on, I OExcept i on { r esponse. set Cont ent Type( " t ext / ht ml " ) ; r esponse. set Buf f er Si ze( 8192) ;
Pr i nt Wr i t er out = r esponse. get Wr i t er ( ) ; wr i t ePage( r equest , out ) ; out . cl ose( ) ; }
publ i c voi d doPost ( Ht t pSer vl et Request r equest , Ht t pSer vl et Response r esponse) t hr ows Ser vl et Except i on, I OExcept i on { r esponse. set Cont ent Type( " t ext / ht ml " ) ; r esponse. set Buf f er Si ze( 8192) ;
Pr i nt Wr i t er out = r esponse. get Wr i t er ( ) ; wr i t ePage( r equest , out ) ; out . cl ose( ) ; }
publ i c St r i ng get Ser vl et I nf o( ) { r et ur n " Hel l o ser vl et mengat akan hel l o wor l d. " ; }
}
Method yang harus ada pada servlet walaupun tidak berisi apapun adalah: doGet(HttpServletRequest request, HttpServletResponse response) Method yang dijalankan untuk variabel get doPost(HttpServletRequest request, HttpServletResponse response) Method yang dijalankan untuk variabel post
c. Menjalankan Servlet
1. Buka Start->All Programs->Sun Microsystems->Application Server PE->Start Default Server sampai keluar command prompt
www.gangsir.com Rosa Ariani Sukamto
Tekan enter.
2. Buka jendela command prompt, masuk ke direktori Servlet 3. ketik perintah $>asant build. Perintah asant build digunakan untuk mengkompilasi source code, jika source code telah lulus kompilasi maka akan muncul pesan sebagai berikut:
Buildfile: build.xml
init:
prepare:
copy:
build:
BUILD SUCCESSFUL Total time: 2 seconds
4. Buka Deploytool dari Sun untuk melakukan packaging menjadi file WAR. Klik Start->All Program->Sun Microsystems->Application Server PE->Deploytool. 5. Klik File->New->Web Component... . Hingga muncul jendela seperti pada gambar berikut.
www.gangsir.com Rosa Ariani Sukamto
6. Klik Next. Hingga muncul jendela seperti pada gambar berikut.
Pilih Create New Stand-Alone WAR Module, isi field WAR file dengan mengeklik browse untuk mencari direktori HelloServlet, dan isi file name dengan HelloServlet seperti pada gambar berikut dan klik create module file.
www.gangsir.com Rosa Ariani Sukamto
Klik edit contents (gambar sebelumnya) hingga muncul jendela seperti gambar berikut. Tambahkan direktori contoh pada available file dengan mengeklik direktori build, kemudian klik file HelloServlet.class dan klik tombol add kemudian klik ok. Kemudian klik next.
7. Pada jendela seperti gambar berikut, pilih servlet. Klik next.
8. Kemudian akan muncul jendela seperti gambar berikut. Isi field yang ada dengan mengeklik tanda panah dan pilih pilihan yang ada, maka beberapa field akan terisi. Klik next.
www.gangsir.com Rosa Ariani Sukamto
9. Setelah muncul jendela seperti pada gambar berikut, klik Finish.
10. Setelah kembali ke jendela awal, pilih tab Aliases, klik Add dan isi field Aliases dengan / lalu tekan enter.
www.gangsir.com Rosa Ariani Sukamto
11. Setelah kembali ke jendela awal, klik tombol save yang bergambar disket, maka file WAR akan terbentuk di dalam direktori HelloServlet.
12. Pilih Tools->Deploy seperti pada gambar berikut:
www.gangsir.com Rosa Ariani Sukamto
13. Hingga muncul jendela berikut, lalu klik ok
14. Hingga muncul jendela berikut, klik close:
ketikkan http://localhost:8080/HelloServlet/
jika tampilan bukan Hello World! maka cek port mungkin salah dengan membuka file C:/Sun/AppServer/domains/domain1/config/domain.xml
cek pada bagian file
<ht t p- ser vi ce> <ht t p- l i st ener accept or - t hr eads=" 5" addr ess=" 0. 0. 0. 0" bl ocki ng- enabl ed=" f al se" def aul t - vi r t ual - ser ver =" ser ver " enabl ed=" t r ue" f ami l y=" i net " i d=" ht t p- l i st ener - 1" port="1309" secur i t y- enabl ed=" f al se" ser ver - name=" " xpower ed- by=" t r ue" > </ ht t p- l i st ener > www.gangsir.com Rosa Ariani Sukamto
Untuk contoh bagian file di atas berarti port yang digunakan bukan 8080 tapi 1309