Java Enterprise, mulai dari mana ? (part 3 – Eclipse

advertisement
Java Enterprise, mulai dari mana ? (part 3 – Eclipse & JBoss)
Ini sebenarnya hanya perbandingan saja, saya ingin mencoba membuat aplikasi yang persis sama dengan
yang ada di artikel sebelumnya. Bedanya, di part 2, saya membuatnya dengan IDE Netbeans dan
mendeploynya di Glassfish, sedangkan kali ini saya akan menggunakan IDE Eclipse 3.4 for Java EE developer
dan mendeploynya di JBoss versi 4.2.2.
Karena di Java kita punya banyak pilihan, semoga artikel ini bisa memberi gambaran tentang alternatifalternatif yang bisa kita gunakan, sekaligus menunjukkan bahwa aplikasi yang sama bisa dideploy di atas 2
application server yang berbeda tanpa harus melakukan banyak perubahan.
Di artikel ini saya tidak akan mengulang penjelasan tentang apa itu Java EE dan modul-modul yang terdapat di
dalamnya. Silahkan lihat artikel ini untuk overview Java EE, dan artikel itu untuk penjelasan
komponen Java EE yang digunakan di dalam contoh aplikasi ini.
1. Download dan install
Eclipse 3.4 for Java EE developer bisa didownload dari http://www.eclipse.org/downloads/. JBoss bisa
didownload di http://www.jboss.org/jbossas/downloads/, saya menggunakan versi 4.2.2 GA. Ekstrak file-file zip
tersebut ke komputer Anda, selanjutnya saya akan menyebut direktori instalasi eclipse sebagai ECLIPSE_HOME
dan direktori instalasi JBoss sebagai JBOSS_HOME.
2. Register JBoss ke Eclipse
Klik menu Windows -> Preferences. Pilih item Server -> Runtime Environments di tree. Kemudian klik tombol
Add untuk meregister application server baru ke dalam eclipse.
Di wizard New Server Environment, pilih JBoss -> JBoss v4.2, klik next, browse JBOSS_HOME anda, kemudian
klik finish. Hasilnya, kita bisa melihat server JBoss kita teregister di eclipse, dan kita bisa mengontrol server ini
seperti halnya Netbeans mengontrol Glassfish.
3. Setup Project
Di panel Project Explorer, klik kanan, pilih New -> Project. Pilh Enterprise Application Project, klik next. Isi
project name dengan TestEnterpriseProject, target envronment JBoss v4.2, EAR version 5.0 dan gunakan
default configuration for JBoss v4.2. Klik next, akan ditampilkan module dependencies. Kita akan meng-create
module baru, klik New Module. Pilih EJB module dan Web module saja.
Kembali ke wizard sebelumnya, aktifkan option Generate Deployment Descriptor. Hasilnya seperti gambar
sebelah kanan.
4. EJB Module
Klik kanan di project TestEnterpriseProjectEJB, pilih New -> Session Bean.
Eclipse
secara
otomatis
akan
meng-create
class
CalculatorSession
sebagai
bean
class
dan
CalculatorSessionLocal sebagai interface. Untuk membuat Session Bean, kita membutuhkan sebuah interface
dan sebuah class. Interface digunakan untuk menentukan method apa yang bisa dipanggil oleh client,
sedangkan bean class merupakan implementasi dari method tersebut.
Business Logic Interface – Local
Interface CalculatorSessionLocal diberi annotation @Local, artinya interface ini bisa diakses oleh client yang
“local” atau berada dalam JVM yang sama dengan EJB server. Client yang kita gunakan adalah web component
(JSP dan Servlet) yang berjalan di application server yang sama, sehingga kita cukup menggunakan Local
interface. Di interface ini, kita hanya mendefinisikan satu method saja yaitu calculate yang menerima
parameter-parameter berupa OPERATION, operand1 dan operand2.
01 package suhearie.blog.enterprise.ejb;
02 import javax.ejb.Local;
03
04 @Local
05 public interface CalculatorSessionLocal {
06
07
public enum OPERATION {ADD, SUBSTRACT, MULTIPLY, DIVIDE};
08
09
public int calculate(OPERATION operation, int oper1, int oper2);
10
11 }
Bean Class – Business Logic Implementation
Class CalculatorSession adalah implementasi dari interface CalculatorSessionLocal. Kita menandainya dengan
annotation @Stateless yang berarti kita mendefinisikannya sebagai Stateless Session Bean. Pada implementasi
method calculate, kita melakukan perhitungan matematika yang sebenarnya.
01 package suhearie.blog.enterprise.ejb;
02
03 import javax.ejb.Stateless;
04
05 /**
06 * Session Bean implementation class CalculatorSession
07 */
08 @Stateless
09 public class CalculatorSession implements CalculatorSessionLocal {
10
11
12
/**
* Default constructor.
13
*/
14
public CalculatorSession() {
15
16
}
// TODO Auto-generated constructor stub
17
18
19
20
21
22
23
24
25
public int calculate(OPERATION operation, int oper1, int oper2) {
switch(operation) {
case ADD:
return oper1+oper2;
case SUBSTRACT:
return oper1-oper2;
case MULTIPLY:
return oper1*oper2;
26
case DIVIDE:
27
return oper1/oper2;
default:
28
29
throw new UnsupportedOperationException("Not supported
yet.");
30
}
31
32 }
}
5. Web Module
Subproject TestEnterpriseProjectWeb harus mempunyai referensi ke subproject TestEnterpriseProjectEJB, agar
servlet yang kita buat bisa memanggil komponen EJB. Klik kanan di project TestEnterpriseProjectWeb, pilih
Build Path -> Configure Build Path. Pilih tab Projects, jika belum ada, klik tombol Add, kemudian pilih project
TestEnterpriseProjectEJB.
File index.jsp, kita gunakan untuk membuat form html yang akan mensubmit parameter-parameter yang
digunakan untuk melakukan perhitungan. Klikkanan di project TestEnterpriseProjectWeb, pilih New -> JSP.
Modifikasi menjadi seperti berikut:
01 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
02
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
04 <html>
03
05 <head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO06
8859-1">
07 <title>Java EE Calculator</title>
08 </head>
09 <body>
<h2>Welcome to Java EE Calculator Test Project
10
!</h2>
<form
11 action='<%=request.getContextPath()%>/CalculatorServlet'
method='POST'>
12
Operation:
13
<select name="operation">
<option selected
14
value="ADD">ADD</option>
<option
value="SUBSTRACT">SUBSTRACT</option>
<option
16
value="MULTIPLY">MULTIPLY</option>
15
<option
value="DIVIDE">DIVIDE</option>
18
</select>
17
19
20
Operand 1:<input type="text" name="oper1" value="0"
/>
21
22
Operand 2:<input type="text" name="oper2" value="0"
/>
23
24
<input type="submit" value="Calculate" name="Calculate"
/>
25
</form>
26 </body>
27 </html>
Form html disubmit ke servlet (CalculatorServlet), yang sesaat lagi akan kita buat.
Create servlet, dengan cara klik kanan di module TestEnterpriseProjectWeb, pilih New -> Servlet. Isikan class
name CalculatorServlet, dan package suhearie.blog.enterprise.servlet.
Fitur EJB injection masih belum disupport oleh JBoss v4.2. Jadi di servlet ini, kita harus melakukan JNDI lookup
secara manual. Lookup kita lakukan di dalam constructor. Default JNDI name untuk local EJB3 di JBoss
adalah [ear-filename]/[bean-name]/local. Selanjutnya, kita mengambil parameter-parameter yang dikirim
melalui http request, kemudian menggunakan session bean untuk melakukan perhitungan berdasarkan
parameter-parameter tersebut. Hasil perhitungan kita masukkan sebagai attribut di object request. Untuk
menampilkannya, kita akan memforward request menuju ke halaman JSP CalculatorPage.jsp (kita buat sesaat
lagi) menggunakan RequestDispatcher.
Modifikasi servlet tersebut menjadi seperti kode berikut.
01 package suhearie.blog.enterprise.servlet;
02
03 import java.io.IOException;
04
05 import javax.ejb.EJB;
06 import javax.naming.InitialContext;
07 import javax.naming.NamingException;
08 import javax.servlet.ServletException;
09 import javax.servlet.http.HttpServlet;
10 import javax.servlet.http.HttpServletRequest;
11 import javax.servlet.http.HttpServletResponse;
12
13 import suhearie.blog.enterprise.ejb.CalculatorSessionLocal;
14
15 /**
16 * Servlet implementation class CalculatorServlet
17 */
18 public class CalculatorServlet extends HttpServlet {
19
private static final long serialVersionUID = 1L;
20
21
CalculatorSessionLocal calculatorSession;
22
23
24
/**
* @see HttpServlet#HttpServlet()
25
*/
26
public CalculatorServlet() {
27
28
super();
InitialContext ctx;
29
try {
30
31
ctx = new InitialContext();
calculatorSession = (CalculatorSessionLocal)
ctx.lookup("TestEnterpriseProject/CalculatorSession/local");
32
} catch (NamingException e) {
33
34
}
35
e.printStackTrace();
}
36
37
/**
* @see HttpServlet#doGet(HttpServletRequest request,
38
HttpServletResponse response)
39
40
41
42
*/
protected void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
doPost(request, response);
}
43
44
/**
* @see HttpServlet#doPost(HttpServletRequest request,
HttpServletResponse response)
46
*/
45
protected void doPost(HttpServletRequest request, HttpServletResponse
response) throwsServletException, IOException {
48
String operation = request.getParameter("operation");
47
49
int oper1 = Integer.parseInt(request.getParameter("oper1"));
50
int oper2 = Integer.parseInt(request.getParameter("oper2"));
51
int result =
5
2 calculatorSession.calculate(CalculatorSessionLocal.OPERATION.valueOf(operat
ion), oper1, oper2);
5
request.setAttribute("result", result);
3
5
request.getRequestDispatcher("/CalculatorPage.jsp").forward(request
4 , response);
55
}
56
57 }
File CalculatorPage.jsp, kita gunakan untuk menampilkan hasil perhitungan.
01 <html>
02
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8">
04
<title>Java EE Calculator</title>
03
05
06
</head>
<body>
07 <h2>Java EE Calculator Result:</h2>
08 Operation: <%=request.getParameter("operation")%>
09
10
Operand 1: <%=request.getParameter("oper1")%>
Operand 2: <%=request.getParameter("oper2")%>
Result:<B> <%=
request.getAttribute("result")%></B>
<a
1
href='<%=request.getContextPath()%>/'>BACK</a&a
2
mp;gt;
11
13
</body>
14 </html>
6. Deployment.
Setelah selesai semua, buka tab Servers, klik kanan di JBoss v4.2, pilih Start untuk menjalankan JBoss
application server.
Setelah status JBoss berubah menjadi started, klik kanan di JBoss, pilih Add and Remove Projects, masukkan
project TestEnterpriseProject.
Jika status server sudah synchronized seperti ini, artinya project kita sudah berhasil dideploy pada JBoss.
Buka web browser anda dan masukkan alamat http://localhost:8080/TestEnterpriseProjectWeb, dan
Anda akan melihat halaman seperti berikut:
Pilih operasi, masukkan operand 1 dan 2, kemudia tekan tombol calculate, maka hasil perhitungan akan
ditampilkan pada halaman berikut.
Like
Be the first to like this post.
September 1, 2008 - Posted by suhearie | Java, Java Enterprise | eclipse, ejb, java
ee, jboss, jsp, servlet, tutorial
12 Comments »
1.
Wah…artikel Java EEnya mantap nih…Malah lebih jelas dari tutorial resminya Sun (apalagi buat gw
yang baru belajar Java EE)
Nice blog
Comment by Rio | September 6, 2008 | Reply
2.
Bagus nih, bisa diteruskan jadi buku.
Pakai Eclipse dan JBoss saja deh, banyak dipakai.
Comment by Josef | September 10, 2008 | Reply
o
Semoga tercapai, kapan-kapan
Comment by suhearie | March 5, 2009 | Reply
3.
bagus banget nih, jadi semangat lagi mo belajar java.
pakai IntelliJ IDE dong. soalnya awalnya saya pake itu, trus keliatan susah jadi males belajarnya.
thanks bro.
Comment by mukasintu | October 27, 2008 | Reply
o
Eclipse mantep, udah gitu gratis pula. IntelliJ denger2 sih bagus juga (kata temen), tapi
belum pernah pake, karena belum ada yang kasih donasi license.
Comment by suhearie | March 5, 2009 | Reply
4.
nice tutorial, thanks very much
Comment by budi | January 16, 2009 | Reply
5.
Mas numpang tanya,
kalo menghubungkan EJB ke database (MySQL,Postgre) bagaimana ya?
mungkin seperti pembuatan “buku tamu” dan sebagainya. Saya sangat tertarik sekali akan hal ini.
terima kasih sebelumnya
NB:atau mungkin mas memiliki sejumlah referensi yang bisa Saya baca.
Comment by nukhran | September 16, 2010 | Reply
o
EJB sendiri ada 3 macam: Entity Bean, Session Bean & Message Driven Bean. Entity bean
adalah object yang merepresentasikan data di database, jadi kita tidak harus memanipulasi
database menggunakan SQL query.
Comment by suhearie | October 23, 2010 | Reply
6.
Thanks Suhu Ari atas pencerahannya.. sungguh lengkap sekali tutorial ini. cukup membantu untuk
pemula seperti saya.
Suhu, klo ada tambahan tulisan tolong kasi tau saya lagi yah
hehehehhe..
thanks!!!
Comment by binbinbo | October 19, 2010 | Reply
o
Sama-sama. Cuman sekarang saya jarang banget posting lagi.
Comment by suhearie | October 23, 2010 | Reply
7.
Very good tutorial ! It’s well explained so I understand it even without studying Indonesian
language
But unfortunately after doing all the steps correctly when I open the browser and type
the URL i get nothing. Could you help?
Comment by yassine | April 7, 2011 | Reply
o
Hi.. you’re welcome. Google translate is always there to help you
If you got nothing after following all the steps, you may need to check the output of the
JBoss in the eclipse console. It may have some error messages that give you a clue what
was happening and take action from there.
Comment by suhearie | September 19, 2011 | Reply
Leave a Reply
Enter your comment here...




Guest
Log In
Log In
Log In
Email (required)(Not published)
Name (required)
Website
Notify me of follow-up comments via email.
Notify me of new posts via email.
Post Comment
« Previous | Next »
About me
Who
am
I
?
I’m
still
finding
out
the
perfect
answer..
I’m just an ordinary man, but want to make my life extraordinary.
Suhendra Arianto, or just call me Hendra, was born in Batu-Malang, East Java, Indonesia,
and now I live in Kuala Lumpur, Malaysia.
I studied physical engineering, but now I’m working as a software developer. It’s an exciting and challenging
world, because I can envisage, design, and develop something that hopefully can make other people’s life
easier.
My major programming language is Java, a great technology that allows me to create great & exciting things.
I’m still using PHP and C++ as well. So, I want to share my world (everything related to the machine called
computer) in this blog.
Shortly, I’m from Java island, I can speak Javanese, and I code in Java
Yup, this is just an overview of me, my posts will describe me deeper…
Contact: [email protected]

Search Posts

Search for:

Categories
o
o
o
Database (2)
Inside my mind (3)
Java (12)
Search
o
o
Java Enterprise (4)
My Days (7)

Recent Posts
o
o
o
o
o
o
o
Concert, or Church Service?
Oh Indonesia, unluckiest country?
Pengenalan Web Framework: Apache Struts
Membuat grafik dengan JFreeChart
Java Enterprise, mulai dari mana ? (part 3 – Eclipse & JBoss)
Java Enterprise, mulai dari mana ? (part 2 – Netbeans & Glassfish)
Java Enterprise, mulai dari mana ?

Tags
batch belajar career certificationchart curriculum
eclipse ejbemploymentemployment
pass frameworkglassfish helloworld it Javajava ee jboss jdbcjfreechart job jsp kuala
lumpur learn mahasiswamalaysia mysql netbeansobject oriented
vitae cv desktopdosen
programming oopperformance preparedstatementscjp security
injection statement strutsswing ta

Archives
o
o
o
o
o
o
o
o
o
November 2010 (2)
October 2008 (1)
September 2008 (2)
August 2008 (6)
July 2008 (4)
June 2008 (2)
February 2008 (1)
January 2008 (1)
December 2007 (1)

Recent Comments
servlet sql
tutorialvisa
web
Diaz Pradiananto onJava Enterprise, mulai dari ma…
Etty on Membuat grafik dengan JFr…
suhearie on Pengenalan Web Framework: Apac…
suhearie on Statement vs PreparedStatement…
suhearie on About me

September 2008
M T W T F S S
« Aug
Oct »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

Meta
o
o
o
o
o
Register
Log in
Entries RSS
Comments RSS
WordPress.com
suhe arie's pages
Download