Beberapa minggu kemudian saat sedang sibuknya mengerjakan tugas dari client, programmer tersebut mendapat telefon dari bagian marketing. "Mas Programmer, ini tolong programnya ditambah ini, trus yang ini kalau bisa begini, begitu dan seterusnya...", "OK segera dikerjakan", mas programmer melakukan modifikasi sourcenya meng-compile, kemudian didistribusikan ke 36 client tersebut satu-persatu. Besoknya lagi ditelfon lagi, "Maaaas programmer ini tolong tambahkan modul buat menghitung bla bla bla...". Modifikasi lagi, compile, pergi ke ke 36 client satu-satu diinstall lagi. Mending kalo usernya cantik-cantik, lha ini galak-galak gini, "Gimana sich loe, gua lagi sibuk nich, installnya besok aja, lagian gua juga hari ini ga make!!", Programmer menjawab, "Lah mumpung saya disini mbak, besok saya harus balik lagi, jadi ini sekalian", "Halah itu mah derita loe.. kacian dech jadi programmer!!". Cape deeech.. inilah derita jadi satu-satunya programmer di perusahaan, "Ya Tuhan berilah kesabaran dan solusi", setelah berdoa dia
browsing2 di internet dan menemukan Java Web Start. "Ya Tuhan engkau benar-benar mengabulkan doa orang yang teraniaya.."
Kisah diatas hanya fiktif belaka, jika ada kemiripan ya itu urusan loe hehe.. Ga usah protes ga usah didebat, yang penting kita ambil hikmah dari cerita dia atas aja.
Dari cerita dia atas, kita butuh solusi gimana ya biar kita bisa menciptakan aplikasi yang agile tanpa harus bersusah payah bolak-balik ke client. Kalau berbasis web sih kita tinggal modifikasi di sisi server, client yang tinggal menggunakan web browser, ga masalah biarpun client ada di ujung dunia sekalipun. Pendekatan ini bisa diterapkan dengan Java Web Start.
Java Web Start atau dikenal juga dengan JavaWS adalah framework yang dikembangkan oleh Sun Microsystems untuk memulai aplikasi berbasis platform java langsung dari internet menggunakan web browser. (wikipedia.org)
Tetapi framework ini tidak harus melalui internet (yang mana kita harus menginstall web server), bisa juga melalui jaringan yang menggunkan file server, sehingga aplikasi bisa diletakkan di file server, dan client bisa mendownloadnya.
OK langsung saja kita terapkan ga perlu banyak teori. Misalkan kita sudah membuat aplikasi yang siap di distribusikan dengan nama file Application.jar dan beberapa library, misal saja mysql-connector-java-5.1.7-bin.jar, jika kita akan menggunakan web server, maka masukkan di folder misal "jnlp_app" dan letakkan folder tersebut ke default web server host, misal kalau apache di "var/www/" apabila di linux atau "di "$APACHE_BASE_DIR/htdocs/" kalau di windows. Buat file .jnlp dalam folder tersebut misal mulai.jnlp sehingga bisa kita panggil melalui browser dengan alamat
http://namasitus/jnlp_app/mulai.jnlp
atau bisa melalui console dengan perintah
javaws http://namasitus/jnlp_app/mulai.jnlp
Lah lalu apa isi dari file .jnlp tersebut. Sabar, berikut isi minimal file .jnlp. Untuk konfigurasi yang lebih lengkap silahkan lihat-lihat and coba-coba sendiri di sun's javaws guides
<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="http://namasitus/jnlp_app/"
href="mulai.jnlp">
<information>
<title>JNLP Test</title>
<vendor>Dicky Inc.</vendor>
<homepage href="http://www.dickyaw.com" />
<description>Test JNLP Application</description>
</information>
<resources>
<j2se version="1.6+" />
<jar eager="true" href="Application.jar"/>
<jar href="mysql-connector-java-5.1.7-bin.jar" />
</resources>
<application-desc main-class="coba.Main" />
</jnlp>
Lalu katanya tadi bisa lewat file server, gimana caranya. File server kan intinya sama dengan file local saja, jika fileserver kita mempunyai alamat IP "192.168.0.3" dan kita letakkan pada folder jnlp_app maka file .jnlp perlu kita rubah pada bagian :
<jnlp spec="1.0+" codebase="http://namasitus/jnlp_app/" href="mulai.jnlp">
menjadi
<jnlp spec="1.0+" codebase="file:////192.168.0.3/jnlp_app/" href="mulai.jnlp">
dan kita panggil melalui command prompt :
javaws //192.168.0.3/jnlp_app/mulai.jnlp
Ada kalanya aplikasi yang kita buat membutuhkan access file ke dalam sistem file workstation client, secara default java akan menolak demi keamanan. Untuk itu kita perlu menambahkan tag security pada file .jnlp agar nantinya ada konfirmasi bagi user apakah aplikasi diijinkan untuk mengakses file system pada workstation-nya.
<security>
<all-permissions/>
</security>
Apakah ini cukup, belum, bila ini dijalankan maka akan terdapat error bahwa file2 jar is not signed. Maka kita perlu men-sign semua file jar termasuk librarynya. Langkah pertama kita buat file kunci, masuk ke console ketikkan :
keytool -genkey -keystore myKeys -alias jdc
Maka akan keluar perintah yang mengharuskan kita mengisi beberapa isian misal nama, password, dsb. Setelah file kunci tersebut berhasil dibuat maka kita sign-kan semua file jar dengan kunci tersebut :
jarsigner -keystore myKeys Application.jar jdc
Jangan lupa semua library juga kita sign:
jarsigner -keystore myKeys mysql-connector-java-5.1.7-bin.jar jdc
Demikian seterusnya sampai semua file jar berhasil di-sign.
Demikian tutorial ini semoga membantu, jika ada salah mohon kritik dan sarannya.
kocak bos pengantarnya
BalasHapusPengalaman pribadi hehehe...
BalasHapuskeren gan sangat membantu tapi ane mw tanya nie kok ane gini ya kluar nya : waktu mw masukin file.jar
BalasHapusEnter Passphrase for keystore:
jarsigner error: java.lang.RuntimeException: k
ys (The system cannot find the file specified)
Pastikan file keystore-nya ada.. kalo dari contoh diatas filenya namanya mKeys
Hapuskang misalkan saya punya aplikasi desktop java se sudah jadi. apakah bisa di buat menjadi java web startnya?
BalasHapustentu saja bisa, caranya sama seperti diatas, jangan lupa dengan librarynya
Hapusfile jnlp sudah sukses jalan di pc client, tapi masalahnya jika saya mau cetak report/create excel. tidak bisa. seakan akan dia tidak menemukan folder tempat penyimpannya. net.sf.jasperreports.engine.JREXception: java.io.FileNotFoundException: src\id\ptmsa\co\id\report\TestReport.jasper
Hapusgan kl masukin ke consolenya itu gmn seh kaya cmd gt?
BalasHapusms dicky bisa mint CP nya saya mau tanya masalh JWS
BalasHapus