Posts filed under 'SCBCD 5'
Objective 3, Session Bean bagian 2
Bagi client, session object adalah non-persistent object yang mengimplement bisnis logic dalam server. Dengan kata lain sesion object logical extention bagi program client yang berjalan di dalam server. Session object tidak di share antara client satu dengan yang lain (jika clientnya lebih dari satu).
Sesuai namanya SFSB (Statefull Session Bean), mempertahan state-nya untuk sebuah session dan tidak akan di share yang berbeda dengan SLSB (Stateless Session Bean) yang disimpan dalam pool.
Setelah kita menyentuh bagaimana permukaan session bean dalam EJB pada bagian pertama, coba kita lebih dalam lagi pada bagian ini mengenai Lifecyclenya.
SFSB memiliki callback interceptor method PostConstruct, PreDestroy, PrePassivate, dan PostActivate. Ketiga lifecycle callback interceptor methods dapat digunakan oleh SFSB, sedangkan untuk SLSB PostConstruct dan PreDestroy, dan jikalaupun ada kedua callbacak interceptor method (PoastActivate dan PrePassivate) di SLSB, maka callback ini akan diabaikan.
Sekali lagiPrepassivate dan PostActivate khusus hanya untuk SFSB.!
sesuai namanya, method-method callback tersebut akan digunakan (invoked)
PostConstruct akan dipanggil sesaat setelah di buat objectnya dan sebelum ada bisnis method yang dipanggil.
PreDestroy akan dipanggil sesaat sebelum object tersebut diclaim oleh GC atau dihancurkan
PrePassivate dipanggil sesaat sebelum SFSB memasuki phase passive (ingat, yang memanage lifecycle SFSB adalah bean container)
dan PostActivate dipanggil sesaat setelah diaktifkan kembali dan sebelum method yang lainnya dipanggil.
Add comment February 18, 2009
Enviroment Setup EJB3 dengan JBOSS
Sebelum menyiapkan environment untuk coding, dipastikan JDK 1.5 sudah terinstall dan sudah ditambahkan path JAVA_HOME. Setiap web/aplication server akan mencari path JAVA_HOME ini. Selnajut dapat diikuti langkah-langkah selanjutnya.
Langkah-langkah untuk menyiapkan environtment untuk coding EJB 3 adalah sebagai berikut;
1. Siapkan Application Server yang akan digunakan, dalam kasus ini saya menggunakan JBOSS versi 4.0.5 dengan menggunakan jems-installer. Kemudian file jar tersebut dapat dieksekusi dengan command
C:\java -jar jems-installer-1.2.0.BETA3
Bagian penting saat install JBOSS adalah saat memilih profile, pilih EJB profile bukan yang lainnya.

2. Install IDE Eclipse, pada kasus ini saya menggunakan eclipse Release 3.2 dengan plugin eclipse jboss plugin. JBoss eclipse dapat didownload dari sini, Eclipse IDEnya sendiri dapat di download dari sini .
Referensi
http://java.boot.by/scbcd5-guide/index.html
Add comment February 9, 2009
Objective 3, Statefull Session Bean bagian 1
Dalam SCBCD, dituntut pengetahuan bagaimana sifat2 Statefull Session Bean (SFSB), life cycle dari SFSB dan callback dari interceptor.
Kapan dan bagaimana digunakan, bisa di baca ditutorial lain. Kita fokus pada SFSB itu sendiri bagaimana:
Saat Statefull Bean dieksekusi oleh pengguna nya (client), yang dipanggil adalah bisnis interface reference dari dari EJB Container oleh lookup JNDI,bukan object nya itu sendiri.
Dan berikut adalah interface contoh yang akan kita gunakan dan Session Bean mengimplement interface ini:
package by.iba.ejb;
import javax.ejb.Remote;
@Remote
public interface StatefulCalculator {
public double add(double a);
public double subtract(double a);
public double multiply(double a);
public double divide(double a);
public void clean();
public void turnOff();
}
Bisnis method,dalam hal ini Bean Calculator memiliki beberapa bisnis method yang dapat dipanggil oleh client,
add(double a); subtract(double a); multiply(double a); divide(double a);clean(); turnOff();
method ini sebelumnya di define di interface yang sudah diannotate @Remote atau @Lokal dan di over ride oleh bean dimana bisnis kita taruh.
Lebih lengkapnya sebagai berikut.
package by.iba.ejb;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.ejb.EJB;
import javax.ejb.Remove;
import javax.ejb.Stateful;
@Stateful
public class StatefulCalculatorBean implements StatefulCalculator {
@EJB private StatelessCalculator calculator;
double register = 0;
public double add(double a) {
register = calculator.add(register, a);
return register;
}
public double subtract(double a) {
register = calculator.subtract(register, a);
return register;
}
public double multiply(double a) {
register = calculator.multiply(register, a);
return register;
}
public double divide(double a) {
register = calculator.divide(register, a);
return register;
}
public void clean() {
register = 0;
}
@Remove
public void turnOff() {
System.out.println("[StatefulCalculatorBean] Good bye ! I gotta split !");
}
@SuppressWarnings("unused")
@PostConstruct
private void afterCreated() {
System.out.println("[StatefulCalculatorBean] PostConstruct callback !");
}
@SuppressWarnings("unused")
@PreDestroy
private void beforeRemoved() {
System.out.println("[StatefulCalculatorBean] PreDestroy callback !");
}
}
Dengan sebuah interface dan sebuah class yang telah diannotate seperti diatas, kita sudha bisa menggunakan dan mendeploy EJB componen tersebut dalam Aplictaion server yang telah kita sediakan. Untuk menguji apakah EJB SFSB kita dapat berjalan atau tidak, kita bisa menggunakan main class application seperti dibawah ini :
package by.iba.client;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.rmi.PortableRemoteObject;
import by.iba.ejb.StatelessCalculator;
public class CalculatorClient {
public static void main(String[] args) {
try {
Context jndiContext = new InitialContext();
Object ref = jndiContext.lookup("StatelessCalculatorBean/remote");
StatelessCalculator calc = (StatelessCalculator) PortableRemoteObject
.narrow(ref, StatelessCalculator.class);
System.out.println("4 + 3 = " + calc.add(4,3));
System.out.println("4 - 3 = " + calc.subtract(4,3));
System.out.println("4 * 3 = " + calc.multiply(4,3));
System.out.println("4 / 3 = " + calc.divide(4,3));
} catch (NamingException ne) {
ne.printStackTrace();
}
}
}
Reference
http://java.boot.by/scbcd5-guide/
Add comment February 6, 2009
Exception EJB 3 dan Transaction,
Exception dalam lingkup EJB 3 di bagi menjadi 2; Aplication Exception dan System Exception. Yang masuk dalam katagori aplication exception adalah exception-exception yang terjadi terkait dengan bussines logic, contohnya adalah exception yang terjadi karena jumlah pembayaran lebih besar dibandingkan account balance client.System Exception sendiri terkait dengan exception yang terjadi karena system, seperti koneksi database yang tidak tersedia.
System exception secara otomotis transaction di roll back, sedangkan aplication exception mesti di tentukan tingkah lakunya, apakah akan di rollback atau tidak.
Add comment March 14, 2008
Entity Bean of EJB 3
The taste of beans in EJB are Session, Entity and Message driven Bean. Entity Bean is persistent. Persistent means being written the hard disk or another kind storage media. Entity bean is close to Database, what we create it and make it persist just like insert into database.
EJB 3 used annotation feature that belong to java 5 or above. Entity Bean 3 is simpler then EJB 2. Before EJB 3, developver have to declare all setting in xml file, to map the entity and the table is teh example. Also required extends EJBObject and create interfaces for all of them.
Now it is simpler for developer. Just create PAJO(Plain Annotation Java Object) , then add @Entity above of the class.
example
@Entity
public class Customer implements Serializable{
@Id
private Long myID;
private String name;
private String address;
:
:
}
The three member variable of Customer is mapped as the field of Customer Table by default. The name of the table, if not declared @Table(name=”" ),will use Class name, in this case Customer table. Don’t forget to add setter and getter for each member variable.
Implement serializable why? now we’re working in many JVM or client and server is separated. then we cannt use passing by reference anymore. Object is passing by value and remote client can have object that exactly same as in the container.
1 comment April 25, 2007
SFSB alias Statefull Bean Error in JDK 6
The way is not smooth as I imagine before. I was imagine EJB 3 is easier then EJB 2. After trying some simple code for Stateles Bean and Entity Bean, then I try Stateful Bean. SLSB and Entity bean has no big deal to try, but when I try SLSB in the same environment, I got error.
I used java jdk 1.6 and JBoss 4.05. I just down load sample code of stateless, statefull and entity bean and try to deploy and run it. Stateless and entity bean is ok as I expected, but for stateful has a problem with class loader. Then i try to search by googling and I found this thread in forum of JBoss.
Then I changed my environment, switch to Tiger (jdk 5) again, and its work as I expected. Its also work in JBoss 4.0.4 and used jems.installer with ejb feature.
Welcome and go for the next step
Mujoko
Add comment April 19, 2007
Link for SCBCD 5 (EJB 3) exam preparation
There is not many resources to read or to have an exercise in SCBDC 5. But I just found some link that may this usefull for us, also for me
6 http://www.netbeans.org/kb/55/ejb30.html tambahan dari ifnu
7 http://j2ee.netbeans.org/NetBeans_EJB3.html tambahan dari ifnu
And I think Objective of exam is quite important as well, you can download here Objective .
anyone who wanna share another links probably?
Mujoko
Add comment April 16, 2007
