26
Java EE dengan Wildfly SIMbiosis System Pengenalan Java EE dengan Wildfly Disusun oleh: Iwan Agus Fatahi Dwi Anindyani Rochmah 1/26

Java EE dengan Wildfly SIMbiosis System

Embed Size (px)

Citation preview

Java EE dengan Wildfly SIMbiosis System

Pengenalan Java EE dengan Wildfly

Disusun oleh:Iwan Agus FatahiDwi Anindyani Rochmah

1/26

Java EE dengan Wildfly SIMbiosis System

Daftar Isi

Pendahuluan................................................................................................................................. 4Latar belakang.................................................................................................................................................4Tools dan aplikasi yang digunakan...............................................................................................................5

Java JDK......................................................................................................................................................5Eclipse..........................................................................................................................................................5Wildfly..........................................................................................................................................................6Modul Wildfly.............................................................................................................................................6

Mengenal J2EE (Java 2 Platform Enterprise Edition).......................................................7Infrastruktur Teknologi J2EE........................................................................................................................7

Teknologi Servlet.......................................................................................................................................7Teknologi EJB (Enterprise Java Bean)...................................................................................................8Teknologi JPA (Java Persistence API)....................................................................................................8Teknologi JMS (Java Messaging Service)..............................................................................................8

JBoss AS 7.........................................................................................................................................................8Instalasi........................................................................................................................................................8Eksekusi.......................................................................................................................................................9Administrasi................................................................................................................................................9

Aplikasi Multitier dengan Java.............................................................................................10Presentation-tier...........................................................................................................................................11

Implementasi dengan Java....................................................................................................................11Application-tier.............................................................................................................................................11

Implementasi dengan Java....................................................................................................................11Data-tier..........................................................................................................................................................11

Implementasi dengan Java....................................................................................................................12Web Dinamis dan Servlet........................................................................................................13

Struktur aplikasi web dengan Java............................................................................................................13Struktur direktori.....................................................................................................................................13web.xml.....................................................................................................................................................14

Servlet.............................................................................................................................................................14Pengiriman data dari form HTML.........................................................................................................14Contoh kode servlet................................................................................................................................15

Aplikasi Client dengan Java........................................................................................................................16Client dengan metode GET....................................................................................................................16Client dengan metode POST.................................................................................................................16

EJB (Enterprise Java Beans)..................................................................................................18Modularitas EJB............................................................................................................................................18

Interface....................................................................................................................................................19Implementasi............................................................................................................................................19

Implementasi EJB dengan Java dan Jboss AS 7.....................................................................................19Interface....................................................................................................................................................19Implementasi............................................................................................................................................20Akses (dari Servlet).................................................................................................................................20

Layering dengan EJB....................................................................................................................................20JPA (Java Persistence API).....................................................................................................22

Beberapa keuntungan JPA..........................................................................................................................22Sebuah Entity adalah POJO (Plain Old Java Object), tidak ada logika.........................................22

2/26

Java EE dengan Wildfly SIMbiosis System

Menggunakan anotasi untuk mempersingkat penulisan................................................................22Menggunakan relasi-relasi yang ada dalam teori graph..................................................................23

Contoh Entity dengan JPA..........................................................................................................................23Entity dengan ORM......................................................................................................................................23Test.................................................................................................................................................................. 23

JMS (Java Messaging Service)...............................................................................................24Membuat JMS................................................................................................................................................24

Mendefiniskan Destination pada Wildfly............................................................................................24Membuat sebuah service JMS..............................................................................................................24Membuat client JMS...............................................................................................................................24

EAR (Enterprise Archive)........................................................................................................ 25Daftar Pustaka........................................................................................................................... 26

3/26

Java EE dengan Wildfly SIMbiosis System

Pendahuluan

Buku ini akan membahas tentang Java 2 Platform Enterprise Edition (J2EE) sebuah sebuahplatform standard yang banyak digunakan oleh aplikasi-aplikasi modern. Secara definisi J2EEadalah sebuah ekosistem aplikasi yang berbasis Java dengan beberapa teknologi referensiterstandardisasi dan memiliki kemampuan untuk berjalan di segala sistem operasi. J2EE tidakhanya berfungsi untuk membuat aplikasi, tetapi juga menyediakan ekosistem (library) untukmenjalankan aplikasi tersebut. Dan secara khusus J2EE menyediakan dukungan yang baikuntuk aplikasi berbasis web.

Singkat kata J2EE adalah teknologi yang terdiri dari kumpulan servis, API serta protokol yangmemungkinkan terwujudnya sebuah aplikasi dengan struktur multi tier. Selain poin-pointersebut J2EE juga mengatur spesifikasi bagaimana mengkoordinasi item-item tersebut,sehingga aplikasi bisa mengakses library yang dibutuhkan tanpa harus menambahkan librarytersebut secara langsung ke dalam program buatan kita. Contoh diagram di bawah inimenggambarkan posisi J2EE terhadap aplikasi yang kita bangun.

Untuk mendukung anda dalam memahami isi buku dengan lebih mudah, maka dalam edisi inikami sediakan juga beberapa link terhadap program utama yang diperlukan untukmembangun ekosistem J2EE dan tools untuk pengembangan aplikasinya. Beberapa aplikasicontoh juga kami sertakan yang akan menyesuaikan dengan pokok bahasan masing-masing.Program-program itu antara lain: Oracle Java (www.oracle.com), Wildfly (www.wildfly.org),serta Eclipse (www.eclipse.org).

Latar belakangJ2EE saat ini boleh dibilang sebagai sebuah platform aplikasi yang paling banyak digunakan

4/26

Drawing 1: Model pemrograman dalam sebuah "application server"

ClientMy Application

J2EE Application Server(Libraries, Protocol, API)

My Module

Browser

OthersMy API

My Web

Java EE dengan Wildfly SIMbiosis System

untuk membuat dan menjalankan aplikasi bisnis berbasis web di dunia. Hampir semua aplikasisemisal ERP, CRM, Core Banking yang digunakan oleh perusahaan-perusahaan besarmenggunakan platform J2EE. Sehingga sangat wajar apabila tenaga-tenaga ahli yangmenguasai J2EE menjadi programmer yang paling dicari saat ini. Meskipun demikan tetap sajaprogrammer yang menguasai teknologi J2EE masih sangat langka terutama di Indonesia.Dengan latar belakang seperti ini diharapkan buku ini bisa membantu pembaca untuk menjadipengisi kelangkaan ini, dan bisa menjadi inspirasi untuk ikut terjun dalam dunia J2EE.

Salah satu hambatan besar untuk belajar sistem seperti J2EE yang dirasakan penulis saat iniadalah kebiasaan programmer di Indonesia yang “senang” dengan proses-prosesprogramming dengan menggunakan tools RAD (Rapid Application Development) sepertiVisual Basic, Delphi dan sejenisnya. Kebiasaan ini menjadikan para pembuat aplikasi tidakterbiasa berpikir secara sistematis dalam kerangka programming yang lebih besar. Dalamtulisan ini penulis ingin mengajak pembaca untuk mencoba membangun kerangkapemrograman yang lebih besar, terstruktur dan mengikuti standar kelas enterprise.

Tools dan aplikasi yang digunakanTools yang akan digunakan dalam buku ini semuanya merupakan aplikasi free dan bahkanbeberapa merupakan produk open source yang bisa diunduh dari internet. Harapannyadengan menggunakan sistem-sistem berbasis open source selain untuk mendapatkankeuntungan secara finansial (tanpa lisensi) juga mengurangi ketergantungan terhadap vendortertentu.

Penjelasan masing-masing tools akan kami rangkum secara singkat sebagai berikut :

Java JDK

Java JDK merupakan tools dasar yang digunakan untuk membuat dan menjalankan program-program berbasis Java. Java merupakan salah satu bahasa pemrograman berbasis OOP yangmemiliki kemampuan berjalan di berbagai sistem operasi. Semua program yang ditulis denganbahasa Java, setelah dikompilasi bisa dijalankan di semua OS tanpa harus merubah kodepemrograman di dalamnya. Tentu saja dalam OS tersebut haru terinstall JRE (Java RuntimeEnvironment) terlbeih dahulu.

Java JDK merupakan aplikasi yang bisa diunduh secara gratis di laman website Oracle.Meskipun sifatnya free, tools yang tersedia di sana bukanlah program yang bersifat opensource. Bagi pengguna Linux maka penulis sarankan untuk menggunakan OpenJDK, yangmemiliki standard seperti Oracle dan berbasis open source. Beberapa distribusi Linux jugasudah menyediakan OpenJDK sebagai repositori standar, sehingga proses instalasi akanmenjadi semakin mudah.

Eclipse

Eclipse merupakan sebuah IDE (Integrated Development Environment) yang ditulis denganbahasa Java dan keandalannya sudah diakui dunia. Dengan program Eclipse ini kita bisamembuat program dan kemudian menjalankannya tanpa harus berpindah-pindah ke programlain. Program seperti ini sangat membantu dalam proses coding karena kemampuannya yangterintegrasi.

Secara struktur Eclipse merupakan aplikasi modular yang memungkinkan untuk menambahfungsionalitasnya dengan cara menambah plugins. Tersedia banyak sekali plugins untukmembantu proses pemrograman, dan mempermudah konfigurasi aplikasi Java yang dibuat.

5/26

Java EE dengan Wildfly SIMbiosis System

Secara umum masing-masing plugins mewakili sebuah fungsi baik untuk akses ke serverataupun untuk pembuatan modul-modul tertentu.

Wildfly

Wildfly boleh dikatakan sebagai salah satu application server yang paling tua saat ini. Sejarahpengembangannya bahkan mempengaruhi perkembangan J2EE secara keseluruhan.Kelengkapan sistem serta stabilitas APInya membuat server ini dipakai oleh banyakorganisasi/perusahaan dan menjalankan proses-proses kritis yang ada dalam bisnis mereka.Sebelumnya untuk mengetahui sejarah dari pengembangan Wildfly, penulis sarankan untukmengunjungi situs resmi mereka di www.wildfly.org.

Untuk proses pengembangan aplikasi Wildfly menyediakan plugins tambahan untuk Eclipse,yang berguna untuk memudahkan programmer dalam membuat modul-modul. Hanya sajaplugins ini harus diunduh dan kemudian dipasang ke dalam Eclipse. Plugins eclipse ini akanmembantu proses pekerjaan harian programer seperti pembuatan project, debugging danproses-proses lainnya.

Modul Wildfly

Modul wildfly yang biasanya dibutuhkan adalah reporting, konektor database dan modul-modul lain yang spesifik terhadap aplikasi kita. Biasanya modul-modul ini merupakankumpulan file .jar yang kemudian di gabungkan dalam satu folder dan ditambah dengankonfigurasi internal wildfly. Keuntungan penggunaan modul wildfly adalah kemudahanmanajemen server dan deployment, sehingga programmer langsung bisa menggunakanmodul tersebut dengan hanya menambahkan konfigurasi keterkaitan (dependency) ke dalamaplikasinya.

6/26

Java EE dengan Wildfly SIMbiosis System

Mengenal J2EE (Java 2 PlatformEnterprise Edition)

Teknologi J2EE memungkinkan sebuah program didisain sedemikian rupa sehingga strukturyang digunakan merupakan lapisan-lapisan terkait satu sama lain dengan model ikatan yanglonggar. Ikatan-ikatan ini biasanya dihubungkan dengan protokol ataupun antarmuka programyang di standardisasi. Untuk menggambarkan struktur sebuah program sesuai denganspesifikasi J2EE, perhatikan diagram di bawah ini.

Dengan metode antarmuka seperti ini, akhirnya memungkinkan bagi pengguna untukmenggabungkan fungsi-fungsi dari aplikasi-aplikasi yang ada dan menjadikannya sebuahaplikasi besar yang terintegrasi. Struktur ini memberi kesempatan untuk berkembangnyaaplikasi-aplikasi khusus sesuai dengan kebutuhan pengguna, dan secara bersamaanmemanfaatkan kemampuan aplikasi-aplikasi lain yang sudah teruji.

Infrastruktur Teknologi J2EE

Teknologi Servlet

Teknologi Java Servlet merupakan komponen arsitektur J2EE yang berada dalam sebuahserver sehingga memberikan sebuah mekanisme tambahan bagi Web Server dan bisa diaksesoleh pengguna. Dengan mekanisme tersebut programmer bisa membuat sebuah program

7/26

Drawing 2: Model pemrograman multitier dengan J2EE

ClientApp ServerDatabase

JSON, XML, Direct Links, Other protocols

EJB

Browser

OthersOtherServer

Servlet

Java EE dengan Wildfly SIMbiosis System

khusus yang bisa diakses langsung oleh pengguna melalui browser maupun secara tidaklangsung melalui program lain. Teknologi servlet memungkinkan pembuatan sebuah programyang lebih simpel dan konsisten secara struktural.

Teknologi servlet menjadi antarmuka terdepan bagi sebuah aplikasi Java, baik antarmuka yangbisa diakses dengan browser (Web UI) ataupun antarmuka yang berhubungan denganprogram lain (Web Services, JSON).

Teknologi EJB (Enterprise Java Bean)

Teknologi EJB adalah sebuah teknologi yang menjadi komponen arsitektur J2EE yang beradadi dalam sebuah server dan menjadi pusat terjadinya proses. Dengan teknologi iniprogrammer hanya perlu untuk berpikir bagaimana proses bisnis yang terjadi dalam sebuahorganisasi ataupun perusahaan di terjemahkan dalam bentuk program. Sehingga sistem yangtercipta bisa lebih memenuhi kebutuhan pengguna.

EJB menjadi pusat dari teknologi J2EE dan memiliki akses ke database (melalui JPA), sertamenjadi sistem pemroses terhadap input dari luar (Servlet, JMS, Server lain). Karena fungsinyayang sangat penting ini maka EJB dilengkapi dengan mekanisme pendukung sepertimanajemen transaksi, serta fungsi-fungsi lain.

Teknologi JPA (Java Persistence API)

Teknologi JPA adalah sebuah teknologi yang juga menjadi bagian arsitektur J2EE yangmenghubungkan bisnis proses dengan penyimpanan data (data store). JPA memungkinkanprogrammer untuk membuat program yang tidak tergantung pada database tertentu,sehingga ketika pengguna ingin memanfaatkan server database yang sudah ada, makaprogram hanya perlu di konfigurasi ulang, tanpa perlu melakukan perubahan pada kodenya.

Teknologi JMS (Java Messaging Service)

Teknologi JMS juga merupakan bagian arsitektur J2EE yang mengimplementasikan fungsimiddleware dan memediasi pengiriman message dari satu client ke client yang lain ataupundari client ke server dan sebaliknya. Dengan adanya JMS kita bisa menangani model antrian(queue) sehingga data masuk yang jumlahnya besar bisa ditangani secara proporsional olehserver dan menghasilkan sebuah sistem lebih terpercaya.

JBoss AS 7JBoss AS merupakan sebuah server yang mengimplementasikan spesifikasi J2EE 6 secaralengkap dan sudah memperoleh sertifikasi dari konsorsium Java. Secara historis proyek Jbossmenjadi salah satu faktor penentu perkembangan teknologi J2EE yang ada saat ini. Dalam rilisversi 7 saat ini, Jboss menawarkan kelengkapan konfigurasi yang lebih baik dari versi-versisebelumnya. Administrasi sistem berbasis web bawaan Jboss sudah cukup baik untukmencukupi kebutuhan konfigurasi maupun monitoring dasar sistem secara keseluruhan.

Instalasi

Untuk memasang Jboss AS anda cukup dengan mengunduh aplikasinya dari situswww.jboss.org yang tersedia dalam bentuk file terkompresi. Untuk menginstallnya juga cukupdengan membuka/dekompress file tersebut, dan mengkopi isinya ke dalam sebuah direktoritertentu. Tentu saja sebelumnya program Java (versi JDK) sudah terpasang di komputer

8/26

Java EE dengan Wildfly SIMbiosis System

tersebut. Dalam konfigurasi defaultnya Jboss AS 7, membutuhkan Java versi 7. Tetapi dalambeberapa praktek yang sudah dilakukan dengan menggunakan Java 6-pun Jboss AS 7 bisadijalankan dengan baik.

Eksekusi

Setelah proses instalasi berjalan dengan sukses (seperti pada pada sub bab di atas), makaselanjutnya anda bisa menjalankan server Jboss di komputer lokal. Untuk menjalankan serverJboss kita cukup memanggil perintah :

<direktori instalasi>/bin/standalone.sh

atau di Windows dengan perintah pada cmd:

<direktori instalasi>\bin\standalone.bat

Selanjutnya setelah perintah di atas dijalankan maka Jboss akan bisa diakses dari alamathttp://localhost:8080. Ketika kita mengakses alamat ini, yang akan muncul adalah halamandepan aplikasi Jboss.

Administrasi

Untuk memudahkan proses administrasi, server Jboss juga dilengkapi dengan konsoladministrasi berbasis web yang bisa diakses dengan browser melalui alamathttp://localhost:9990. Tetapi sebelum anda bisa mengakses halaman ini anda harusmemasukkan dulu nama user admin dan password-nya menggunakan konsol admin.

9/26

Java EE dengan Wildfly SIMbiosis System

Aplikasi Multitier dengan Java

Dalam rekayasa perangkat lunak istilah multitier (atau biasa juga disebut n-tier) digunakanuntuk menandai struktur aplikasi client server yang memisahkan secara logika bagiantampilan, bagian pemrosesan, dan bagian manajemen data. Dengan model seperti iniprogrammer bisa membuat bagian-bagian aplikasi yang lebih fleksibel dan bisa digunakankembali untuk aplikasi lain (reusable). Dengan pemisahan bagian-bagian tampilan, proses,serta manajemen data memungkinkan programmer untuk melakukan perubahan pada bagian-bagian tertentu saja tanpa harus mengubah keseluruhan disain. Untuk memperjelas konsepmulti tier perhatikan diagram di bawah ini, dan akan dijelaskan dalam sub bab masing-masing.

Keunggulan dari sisi modularitas ini tidak serta merta menjadi keunggulan pula dalam halproses pembuatan aplikasi. Di perlukan kejelian dan ketelitian yang lebih dalam mendisaintier-tier ini sehingga modularitas yang didapat tetap bisa menghasilkan kecepatan proseskeseluruhan program. Tier yang paling sering digunakan dan paling populer adalah modelstruktur 3-Tier, dimana struktur tersebut terdiri dari presentation tier, logic tier, data tier.

Sekilas struktur 3-Tier memiliki kemiripan dengan model-model pemrograman seperti MVC(Model-View-Controller) ataupun MVP (Model-View-Presenter). Tetapi sesungguhnya terdapatperbedaan yang mendasar antara keduanya, yaitu pada sisi aliran data. Pada struktur 3-Tiertidak pernah ada aliran data langsung dari tampilan menuju data tier ataupun sebaliknya.Sedangkan pada MVC ataupun MVP proses itu lebih bersifat triangular. Jadi komponen modelbisa melakukan update secara langsung terhadap view.

10/26

Presentation-tier

Application-tier

Data-tier

Cari

public void onCari() {criteria = getFromUi;result = find(criteria);sendToUi(result);

}

List<Result> find(String criteria)

SELECT * FROM TABLE_X

Java EE dengan Wildfly SIMbiosis System

Presentation-tierPresentation-tier merupakan bagian yang menghubungkan aplikasi dengan pengguna. Bagianini menjadi bagian yang tampil di depan pengguna dan menerima input yang dimasukkan olehpengguna. Semua masukan / input ini kemudian diteruskan kepada proses-tier dan selanjutnyatier ini akan menampilkan hasil dari pengolahan data tersebut.

Saat ini aplikasi-aplikasi sekelas enterprise menggunakan pattern MVC ataupun MVP dalampresentation-tier mereka. Jenis aplikasi tampilan bisa diimplementasikan dalam bentuk webmaupun aplikasi desktop biasa, yang tersambung dengan server. Untuk menjembatanikomunikasi data antara presentation dengan application biasa digunakan protokol-protokoltertentu seperti RPC, WebServices, JSON, ataupun protokol propiteri yang lain.

Implementasi dengan Java

Presentation-tier di Java diwakili dengan beberapa bentuk aplikasi, antara lain :

1. Aplikasi berbasis web, biasanya diwujudkan dengan menggunakan aplikasi dynamicweb yang memiliki banyak sekali komponen, seperti java servlet, JSP dan juga HTML.

2. Aplikasi desktop, bisa diwujudkan dengan bantuan library seperti Swing, SWT.

3. Aplikasi downloadable desktop JNLP

Pada buku ini implementasi yang kita bahas secara mendalam adalah aplikasi berbasis web,terutama dengan teknologi yang ditawarkan Google yaitu GWT (Google Web Toolkit). Tentusaja pembahasan tentang java servlet akan kita lakukan dengan sangat detail, karenateknologi servlet-lah yang menjadi tulang punggung implementasi aplikasi berbasis web diJava.

Application-tierBagian application-tier merupakan bagian pengolah data yang telah dikirim oleh presentation-tier dan juga sebaliknya memberikan data hasil olahan yang diminta oleh bagian tampilan.Data hasil olahan bisa juga diteruskan lagi ke bagian manajemen data untuk disimpan. Disinilah biasanya proses bisnis aplikasi diimplementasikan dan disesuaikan dengan kebutuhanpengguna. Salah satu syarat penting dari bagian ini adalah fleksibilitas yang tinggi, dan bisadigunakan kembali (reuseable). Karena kepentingan fleksibilitas inilah maka, konsorsium Javamemberikan spesifikasi khusus yang terangkum dalam J2EE dan diwujudkan dalam bentukapplication server.

Implementasi dengan Java

Implementasi application-tier di Java biasanya diwujudkan dalam sebuah aplikasi yang sudahjadi dan di satukan dalam bentuk application server. Teknologi utama yang mewakiliapplication-tier dalam Java terangkum dalam EJB. Setiap application server memiliki bagian inidengan implementasi komunikasi yang standar, meskipun diprogram secara berbeda.

Data-tierBagian ini merupakan bagian terakhir dari struktur multi-tier yang bertugas untuk menyimpandan mengambil data. Dalam prakteknya bagian data-tier ini bisa berupa database, file ataupunbentuk penyimpanan yang lain. Data yang tersimpan dalam sistem manajemen data belumtentu memiliki struktur yang sama dengan model data yang digunakan dalam application-tier.

11/26

Java EE dengan Wildfly SIMbiosis System

Untuk itu biasanya programmer perlu melakukan penyesuaian-penyesuaian ataupun konversisehingga data yang di ambil dari penyimpanan data bisa digunakan. Begitu juga sebaliknyadata yang akan disimpan ke dalam sistem manajemen data juga harus disesuaikan tipenyasesuai dengan yang diijinkan oleh sistem tersebut.

Implementasi dengan Java

Bagian dari data-tier ini diwakili oleh teknologi JPA (Java Persistence API). Meskipun JPAsecara teknis memiliki fitur yang lebih dari sekedar akses data. Karena itu penjelasan tentangJPA akan dilakukan dalam bab tersendiri.

12/26

Java EE dengan Wildfly SIMbiosis System

Web Dinamis dan Servlet

Sebuah aplikasi web dengan Java terdiri dari file html, jsp, dan aplikasi servlet yang biasanyadiorganisasikan dalam sebuah file war. Susunan file html yang bisa dimengerti oleh server webjava sama persis dengan html standard yang biasa kita kenal. Kemampuan lain yang dimilikioleh web server Java adalah fitur skripting yang langsung disediakan oleh server web, berupabahasa pemrograman JSP. JSP ini kalau boleh dikatakan mirip dengan PHP, hanya saja tidakperlu tambahan program khusus untuk menjalankan JSP.

Sebuah kelebihan lain yang dimiliki oleh sistem web dengan Java, adalah tersedianyakomponen servlet, yang berfungsi seperti plugins dan memiliki kemampuan sangat tinggi,karena dia mengadop bahasa Java untuk realisasnya. Selain untuk keperluan pembuatan webdinamis, servlet juga bisa memberikan kemungkinan program untuk berkomunikasi denganserver menggunakan protokol http, tanpa harus menggunakan html.

Struktur aplikasi web dengan JavaSeperti telah dijelaskan di bagian pembuka, ada 3 komponen dasar sebuah aplikasi webdengan Java. Dalam sub bab ini akan kami uraikan bagaimana realisasi dari sebuah aplikasiweb dengan Java, khususnya dengan menggunakan JBoss.

Struktur direktori

Sebuah apikasi web dengan java memiliki susunan dorektori seperti di bawah ini• root (dir)

• index.html• xxxxxxx.html

• images (dir)• WEB-INF (dir)

• web.xml• lib (dir)• classes (dir)

Pada bagian root direktori biasanya terdapat sebuah file index.html atau file apapun yangniasanya digunakan sebagai welcome file. Susunan selanjutnya untuk file html tergantung darikebutuhan misalnya direktori images untuk meletakkan gambat-gambar.

Bagian yang penting selanjutnya untuk setiap aplikasi web dalam Java adalah direktori WEB-INF yang didalamnya terdapat file konfigurasi global (web.xml) sebuah aplikasi. Dalam fileweb.xml ini terdapat parameter-parameter yang mengatur perilaku aplikasi, seperti file manayang akan ditampilkan pertama kali ketika aplikasi tersebut dijalankan oleh server.

Dalam direktori WEB-INF juga terdapat sebuah direktori yang penting lagi yaitu direktori lib.Di dalam dorektori lib ini terdapat library-library yang dibutuhkan oleh aplikasi kita ketikaberjalan. Biasanya servletlah yang membutuhkan library-library seperti itu. Karena tingkatkompleksitasnya, maka bahasan tentang servlet akan kita bahas dalam sub bab tersendiri.

13/26

Java EE dengan Wildfly SIMbiosis System

web.xml

Sebuah susunan web.xml dalam bentuk yang lengkap bisa anda lihat di bawah ini.

<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5" xmlns="http://java.sun.com/xml/ns/javaee">

<!-- Servlets --> <servlet>

<servlet-name>systemServlet</servlet-name> <servlet-class>org.kembang.module.server.SystemServiceImpl</servlet-

class> </servlet>

<servlet-mapping> <servlet-name>systemServlet</servlet-name> <url-pattern>/gladmin/system</url-pattern>

</servlet-mapping>

<!-- Default page to serve --> <welcome-file-list> <welcome-file>GlAdmin.html</welcome-file> </welcome-file-list>

</web-app>

Karena perilaku sebuah aplikasi web ditentukan oleh konfigurasinya, maka perlu secara hati-hati menset nilai-nilai yang ada di dalamnya. Untuk sebuah aplikasi yang sering kita gunakandalam contoh di buku ini, konfigurasi umum seperti pada contoh di atas sudah sangatmencukupi.

ServletServlet merupakan sebuah komponen dinamis dalam senuah aplikasi web dengan bahasa Java.Penamaan servlet sendiri merujuk pada teknologi yang lain yaitu applet. Dalam dua teknologiini, ada sebuah rencana besar dari para disainer bahasa Java yaitu applet digunakan untukmengakomodir aplikasi client, sedangkan servlet merupakan aplikasi yang berjalan di server.

Servlet bisa diakses dari browser dengan cara memanggil namanya, seperti halaman webbiasa. Cara lain untuk mengakses servlet adalah dengan cara membuat program kecil yangberfungsi sebagai http client, dan mengakses ke halaman servlet tersebut.

Pengiriman data dari form HTML

Untuk mengirim data dari client ke server, protokol http mendefinisikan dua cara akses, yaitudengan metode GET dan POST. Biasanya proses pengiriman data dilakukan oleh sebuah formdalam html seperti dalam contoh berikut :

14/26

Java EE dengan Wildfly SIMbiosis System

<form action=”test” method=”GET”>

<input type=”text” name=”data”></input>

<input type=”submit” value=”Kirim”></input>

</form>

Pada contoh di atas, kita meminta supaya data yang kita input dari html bisa dikirim ke servermelalui aplikasi / servlet yang bernama test (lihat bagian form action). Selanjutnya parameteryang akan dikirim adalah “data” dan isi parameter tersebut adalah apa yang kita ketikkan padainputan.

Contoh kode servlet

Di bawah ini adalah sebuah contoh kode sebuah servlet yang sangat sederhana, dan mewakilisegala servlet yang nanti akan kita buat.

// Import required java librariesimport java.io.*;import javax.servlet.*;import javax.servlet.http.*;

// Extend HttpServlet classpublic class HelloWorld extends HttpServlet { private String message;

public void init() throws ServletException { // Do required initialization message = "Hello World"; }

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Set response content type response.setContentType("text/html");

// Actual logic goes here.String data = request.getParameter("data");

PrintWriter out = response.getWriter(); out.println("<h1>" + data + "</h1>"); } public void destroy() { // do nothing. }}

15/26

Java EE dengan Wildfly SIMbiosis System

Pada contoh servlet yang ada di atas, kita menggunakan response doGet untuk menerimarequest dari client. Kita memilih menggunakan doGet karena method yang digunakan olehclient (form method) adalah perintah GET. Ketika client menggunakan metode POST makaresponse yang digunakan adalah doPost. Untuk memudahkan kita dalam proses pengetesanbiasanya contoh-contoh yang kita buat lebih sering menggunakan perintah GET, yang bisalangsung dilihat / diakses dengan menggunakan browser.

Aplikasi Client dengan JavaPada contoh berikut kita akan mencoba membuat sebuah aplikasi yang mengakses servlet darisebuah aplikasi client. Untuk keperluan ini kita perlu sebuah library yang disediakan olehproyek Apache, yaitu http-client. Ada dua jenis apliakasi contoh yang akan kita buat, yaitu yangmenggunakan metode GET, dan yang lainnya menggunakan metode POST.

Client dengan metode GET

HttpClient client = new DefaultHttpClient();HttpGet request = new HttpGet("http://localhost:8080");HttpResponse response = client.execute(request);

// Get the responseBufferedReader rd = new BufferedReader (new InputStreamReader(response.getEntity().getContent())); String line = "";while ((line = rd.readLine()) != null) { textView.append(line);}

Client dengan metode POST

HttpClient client = new DefaultHttpClient();HttpPost post = new HttpPost("http://localhost:8080/register");try {

List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);nameValuePairs.add(new BasicNameValuePair("registrationid","123456789"));post.setEntity(new UrlEncodedFormEntity(nameValuePairs));

HttpResponse response = client.execute(post);BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));String line = "";while ((line = rd.readLine()) != null) {

System.out.println(line);}

} catch (IOException e) {e.printStackTrace();

}

16/26

Java EE dengan Wildfly SIMbiosis System

17/26

Java EE dengan Wildfly SIMbiosis System

EJB (Enterprise Java Beans)

EJB (Enterprise Java Beans) merupakan konsep Java untuk mewujudkan sebuah lapisanproses pengolahan data yang standar. Standar merupakan kata kunci yang sangat pentingdalam disain EJB, sehingga semua komponen yang dibuat dengan menggunakan konsep EJBbisa di “mengerti” oleh semua server. Inilah salah satu syarat dari tier proses yang palingpenting yaitu fleksibilitas dan dapat digunakan kembali (reusable).

Ada beberapa fitur EJB yang sangat membantu untuk meciptakan aplikasi yang sangatmodular yaitu :

1. Dilengkapi dengan interface yang memungkinkan untuk proses pemrograman terdistribusi.2. Memungkinkan untuk menyembunyikan implementasi proses, dan memisahkannya dari

interface.Gambaran sebuah modul EJB adalah sebagai berikut :

Ada dua jenis EJB yang sekarang sering digunakan (EJB 3.1) yaitu :

1. Session Bean : Statefull, Stateless, Singleton

2. Message Bean

Dalam buku ini yang akan banyak digunakan adalah Session Bean yang Stateless, dan MessageBean pada beberapa bagian.

Modularitas EJBTeknologi EJB muncul dikarenakan adanya tuntutan untuk membuat aplikasi yang bisamemanfaatkan model proses terdistribusi. Modularitas EJB didisain untuk bisa mencapai tarafmodular secara binary, sehingga secara teoritis, sebuah modul yang sudah dikompilasi bisadipakai oleh modul lain tanpa harus mengkompilasi ulang. Dengam metode seperti inidimungkinkan untuk mengggabungkan modul-modul yang sudah jadi ke dalam sebuah aplikasiyang kita rancang. Metode modular binary ini akan sangat meningkatkan efektifitas prosescoding dan mengurangi munculnya bug yang berulang-ulang.

18/26

Modul EJB

Interface

Java EE dengan Wildfly SIMbiosis System

Skenario dan gambaran besar sebuah aplikasi yang menggunakan basis EJB bisa dilihat padadiagram di bawah ini:

Interface

Interface menggambarkan sambungan-sambungan yang bisa diakses oleh modul ataupunaplikasi lain. Apabila program lain ingin mengakses fungsi di dalam modul tersebut, makaprogram tersebut harus mengakses melalui interface yang telah didefinisikan. Interfacesebuah EJB bisa dikatakan berfungsi juga sebagai sebuah API. Karena itu biasanya kitamendefinisikan sebuah interface EJB dalam sebuah proyek tersendiri, sehingga bisa di eksporsebagai file jar, dan bisa di gunakan oleh orang lain.

Implementasi

Bagian implementasi EJB merupakan isi program yang sebenarnya dari sebuah modul, dantersimpan dalam bentuk binary di dalam application server. Dengan mekanisme akses yangdisiapkan oleh library EJB, modul lain bisa mengakses dari luar melalui interfacenya. Ketikaimplementasi EJB sudah di masukkan ke dalam server, maka semua aplikasi yang ada dalamserver tersebut bisa menggunakan modul itu dengan syarat ada akses interface yangdisediakan oleh EJB tersebut.

Implementasi EJB dengan Java dan Jboss AS 7Dalam sub bab ini kita akan coba bahasa lebih mendalam sebuah modul EJB berdasarkancontoh.

Interface

Interface IExample {public String getMessage(String name);

}

19/26

EJB 1 EJB 2

Web App

Java EE dengan Wildfly SIMbiosis System

Implementasi

@Stateless@Remote(IExample.class)public class Example implements Iexample {

public String getMessage(String name) {return “Hallo “+name+”!!!”;

}

}

Akses (dari Servlet)

…@EJBIExample example;…

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Set response content type response.setContentType("text/html");

// Actual logic goes here.String data = request.getParameter("data");data += example.getMessage(data)

PrintWriter out = response.getWriter(); out.println("<h1>" + data + "</h1>"); }

Layering dengan EJBSalah satu ide lain untuk membuat sistem yang modular secara binary, programmer dituntutuntuk membuat sebuah layer lagi yang menghubungkan modul-modul lain yang kita impor.Layer ini memiliki tugas utama sebagai koordinator / integrator dari layer-layer yang adadibawahnya. Layer inilah yang melayani permintaan aplikasi tampilan (UI) ataupun aplikasi laindari luar untuk proses pengolahan data. Layer tambahan ini biasanya kita sebut dengan layerproses bisnis, karena berisi logika-logika dari alur proses.

20/26

Java EE dengan Wildfly SIMbiosis System

Untuk memperjelas konsep ini perhatikan bagan di bawah ini:

Integrator pada dasarnya adalah sebuah EJB juga, yang mengakses ke EJB-EJB dibawahnyasehingga secara akses dia memiliki akses dari berbagai fungsi, maupun struktur. Dengandemikian maka EJB pada level Integrator ini tidak memiliki struktur data tersendiri, karenastruktur data yang dibutuhkan sudah disediakan oleh EJB pada layer di bawahnya.

21/26

Modul 1 Modul 2

Integrator

Java EE dengan Wildfly SIMbiosis System

JPA (Java Persistence API)

Sebuah persistence entity adalah sebuah kelas java yang sederhana yang tersambung dengansebuah tabel pada database tertentu. Sehingga instance dari sebuah kelas entity memilikikorespondensi langsung dengan isi tabel / record. Beberapa entity bisa memiliki relasi antarsatu dengan yang lain, yang bisa digambarkan dengan object atau metadata relasi. Selanjutnyacara menggambarkan relasi ini bisa dilakukan dengan anotasi ataupun dengan sebuah file xmltambahan.

Para programmer java enterprise biasanya lebih memilih untuk menggunakan frameworkobject persistence yang disediakan oleh bermacam-macam proyek opensource daripadamenggunakan teknologi entity bean yang disediakan oleh teknologi EJB. Situasi ini dipicu olehcara penggunaan teknologi entity bean EJB yang rumit, dan dinilai sangat berat. Karena itulahmaka akhirnya teknologi framework persistence ini akhirnya di adopsi oleh tim J2EE danmenjadi standar bagi manajemen persistence object pada EJB, dan dituangkan dalam JPA.

Java Persistence API hanya berisi spesifikasi teknologi penyimpanan data ke dalam sistembasis data relasional. Inilah fokus utama JPA yaitu membuat map obyek ke dalam tabel basisdata atau dikenal dengan istilah ORM. Dan fokus ini di jelaskan dengan sangat gamblangdalam dokumentasi spec.

Beberapa keuntungan JPAKetika kita berinteraksi dengan data, biasanya yang langsung tergambar di benak kita adalahpenggunaan RDBMS (Relational Database Management System). Karena biasanya sebuahsistem RDBMS menyediakan banyak kemudahan dan standardisasi dalam proses penyimpanandan pengambilan data. Hanya saja karena model struktur yang berbeda, maka biasanyaseorang programmer akan memiliki tambahan pekerjaan dalam pembuatan proses konversidari tabel di sebuah database menjadi sebuah struktur data dalam bahasa pemrograman.

Karena permasalahan inilah maka lahir ide dari sebuah persistence object, dan salah satuteknologi yang paling sering digunakan dalam Java adala JPA. Ada beberapa keuntungan ataspenggunaan JPA yang akan kita bahas dalam sub bab berikut ini.

Sebuah Entity adalah POJO (Plain Old Java Object), tidak ada logika

Dalam JPA sebuah Entity digambarkan / dimodelkan dengan menggunakan POJO, sebuahobyek Java yang primitive. Kelas yang mewakili sebuah Entity benar-benar kelas dasar tanpaharus menjadi turunan dari kelas lain. Karena itu maka sebuah entity bisa juga digunakan padaoperator new, dan perlakuan-perlakuan lain layaknya kelas dalam Java.

Menggunakan anotasi untuk mempersingkat penulisan

Untuk memudahkan penulisan maka sebuah kelas yang digunakan untuk menjadi entitasditandai dengan anotasi @Entity. Sebuah anotasi merupakan fitur yang mulai diperkenalkansejak J2SE 5, dan terdiri dari tanda @ dan diikuti dengan tipe anotasi.

22/26

Java EE dengan Wildfly SIMbiosis System

Menggunakan relasi-relasi yang ada dalam teori graph

JPA memanfaatkan nama relasi-relasi secara apa adanya dengan bantuan anotasi, seperti@OneToOne, @OneToMany, @ManyToOne. Dengan menandai sebuah member entity dengananotasi seperti ini langsung tergambar bagaimana hubungan antara satu kelas dengan yanglainnya. Penggunaan anotasi seperti ini sangat membantu programmer dalammengimplementasikan model yang menggambarkan perilaku sistem secara keseluruhan.

Contoh Entity dengan JPASebuah contoh sederhana kelas (POJO) yang dijadikan entity adalah sebagai berikut :

@Entitypublic class Customer {

@Idlong id;String code;String name;. . . getters dan setters

}

Entity dengan ORM

Test

23/26

Java EE dengan Wildfly SIMbiosis System

JMS (Java Messaging Service)

Membuat JMS

Mendefiniskan Destination pada Wildfly

Membuat sebuah service JMS

Membuat client JMS

24/26

Java EE dengan Wildfly SIMbiosis System

EAR (Enterprise Archive)

Sebuah modul aplikasi dalam konteks Jboss AS bisa terdiri dari beberapa komponenpembentuk, yaitu EJB, Applet.

25/26

Java EE dengan Wildfly SIMbiosis System

Daftar Pustaka

1. Oracle Java, http://www.oracle.com/us/technologies/java

2. Eclipse, http://www.eclipse.org

3. JBoss, http://www.jboss.org

4. Wikipedia, http://www.wikipedia.org

5.

26/26