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 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 13 14 15 16 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; /** * Default constructor. */ public CalculatorSession() { // TODO Auto-generated constructor stub }
26 27 28 29 30 31 32 } } yet."); }
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.
<!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 21 22 23 24 <input type="submit" value="Calculate" name="Calculate" /> Operand 2:<input type="text" name="oper2" value="0" /> Operand 1:<input type="text" name="oper1" value="0" />
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 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 /** * @see HttpServlet#doGet(HttpServletRequest request, 38 HttpServletResponse response) 39 40 41 42 43 44 /** */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } } /** * @see HttpServlet#HttpServlet() */ public CalculatorServlet() { super(); InitialContext ctx; try { ctx = new InitialContext(); calculatorSession = (CalculatorSessionLocal) ctx.lookup("TestEnterpriseProject/CalculatorSession/local"); } catch (NamingException e) { e.printStackTrace(); } CalculatorSessionLocal calculatorSession; private static final long serialVersionUID = 1L;
* @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 50 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>
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.
12 Comments
1. Wahartikel Java EEnya mantap nihMalah lebih jelas dari tutorial resminya Sun (apalagi buat gw yang baru belajar Java EE) Nice blog
2.
Bagus nih, bisa diteruskan jadi buku. Pakai Eclipse dan JBoss saja deh, banyak dipakai.
Eclipse mantep, udah gitu gratis pula. IntelliJ denger2 sih bagus juga (kata temen), tapi belum pernah pake, karena belum ada yang kasih donasi license.
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.
hehehehhe.. thanks!!!
Hi.. youre 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.
Leave a Reply
Enter your comment here...
Name (required)
Website
Previous | Next
About me
Who am I ? Im still finding out the perfect answer.. Im 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 Im working as a software developer. Its an exciting and challenging world, because I can envisage, design, and develop something that hopefully can make other peoples life easier. My major programming language is Java, a great technology that allows me to create great & exciting things. Im 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, Im 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: suhe_arie@yahoo.com
Search Posts
Search for:
Search
o o o
Categories
Database (2) Inside my mind (3) Java (12)
o o o o o o o o o
Recent Posts
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
servlet sql
web
tutorialvisa
o o o o o o o o o
Archives
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
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
Meta
Register Log in Entries RSS Comments RSS WordPress.com