Posts filed under 'Java'

Interceptor Dalam EJB

Bagaimana caranya jika sebelum atau dan sesudah satu method dapat menyiapkan atau melakukan sesuatu?
Bagaimana membuat class-class service yang kita lebih bersih dari hal2 diluar bisnis proses?

Jika rekan-rekan terbiasa dengan listener class dalam web aplikasi, seperti Session Listener, Request Listener atau Aplication Listener, maka cara kerja mereka sangat mirip jika tidak mau dikatakan sama. Method-method yang didefine sebagai callback akan diinvoke saat sesuatu terjadi, nah sesuatunnya ini tergantung callback yang mana atau apa dan siapa yang memanggilnya.

Dalam Statefull Session Bean (SFSB), Stateless Session (SLSB) , Message Driven Bean (MDB) atau bahkan Entity Bean, mereka semua memliki interceptor yang disebut callback.  Contoh callbak yang hanya dimiliki oleh SFSB adalag @PrePassivate dan @PostActivate. Kedua Callback ini terkait dengan daur hidup dari SFSB yang akan dipassivate saat instance nya, tidak digunakan dan time out agar dapat digunakan lagi nanti oleh clientnnya dan tidak perlu menginstantiate yang baru.

Setiap method yang didefinisikan @PrePassivate diatas methodnya, maka method tersebut akan dipanggil sesaatsebelum SFB tersebut di Passivete. Hal yang bisa dilakukan dalam method tersebut contohnya adalah menyimpan state dari SFSB tersebut. Dan setiap method yang didefine @PostActivate diatas method tersebut akan diinvoke sesaat setelah object SFSB tersebut di activate lagi container. Yang mentrigger SFSB tersebut di activate adalah adanya client yang membutuhkan SFSB tersebut. hal yang bisa dilakukan didalam method tersebut contohnya adalah meretrieve state yang disimpan saat sebelum di passivate. Dalam SFSB juga ada @Remove yang jika dipanggil maka akan memakas container untuk menghancurkan Object SFSB tersebut.

Jika @Prepassivate dan @PostPassivate digunakan oleh SLSB, maka tidak akan berpengaruh apa-apa, karena pada prinsipnya daur hidup SLSB yang mengatur adalah EJB container.

Semua component EJB memiliki callback @PostConstruct dan @PreDetroy. Dari nama annotation sudah kelihatan kapanm mereka diinvoke oleh container. Method yang diannotate @PostContruct dipanggil oleh container sesaat setelah object component EJB tersebut diinstantiate dan sebelum method-method yang lain dipanggil. Ia didedikasikan dan mendapat kehormatan untuk dipanggil oleh container pertama kali, sebelum yang lainnya. Dan setiap method yang diannotate @PostDestroy akan dipanggil sesaat sebelum component tersebut didestory. Ia disiapkan sebegai saksi dalam eksekusi penghancuran hisupnya component EJB.

Khusus untuk component Entity Bean, mereka memiliki callback tambahan yang terkait dengan data persistent milik mereka. Method @PostLoad akan dipanggil sesaat setelah data dari persistent diload kedalam object yang di intance. Hal yang bisa dilakukan dalam method ini contohnya adalah mengubah data type dan mengkonversinya sehingga dapat diassign pada member variable yang diannotate @Transient.

Selain  itu Entity Bean juga memiliki callback yang dapat ditebak kapan method tersebut akan dipanggil, yaitu;

@PrePersist, @PostPersist, @PreUpdate, @Postupdate , @PreRemove dan @PostRemove. Callback ini semua dapat digunakan untuk mencatat aktivitas yang terkait dengan table, misalnya mencatat siapa yang melakukan update satu data dan kapan terakhir diupdate, yang akan sangat penting untuk kepentingan audit.

Add comment May 12, 2009

Apa EJB tuh?

Definisi EJB;

“Enterprise JavaBeans (EJB) is an architecture for setting up program components, written in the Java programming language, that run in the server parts of a computer network that uses the client/server model

Sederhananya, EJB itu ada 3 macam; Session Bean , Message Driven Bean, dan Entity Bean.

Message Driven Bean, itu fungsinya kayak listener buat nerima pesan yang dikirim lewat jalur JMS secara asyncronous.
Entity Bean tuh componen yan berfungsi buat mem-persist data. Artinya, kalo aplikasi kamu itu database centric, maka data-data kamu itu di query pake entity bean. Entity bean ini umumnya mewakili tabel-table kita di database.Nah kalo session bean, umunya buat kamu naro2 bussines process. Session bean bisa aja kamu melakukan query make si Entity Bean, entah nge-insert , nge-query, ato nge-update database.

Setiap Bean (ketiga bean) bisa saling berinteraksi satu sama lain. Saling menggunakan satu sama lain….

contoh Message Driven Bean ;


package id.mujoko.mit.ejb.mdb;

import id.mujoko.mit.ejb.beans.MessageContent;
import id.mujoko.mit.ejb.stateless.MessageEngine;

import java.util.Date;

import javax.annotation.Resource;
import javax.ejb.ActivationConfigProperty;
import javax.ejb.EJB;
import javax.ejb.MessageDriven;
import javax.jms.ConnectionFactory;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.ObjectMessage;
(more…)

2 comments August 20, 2007

mdb file dan Java

Microsoft Access, filenya berekstention mdb, ternyata bisa langsung kita baca seperti halnya kita membaca file biasa. Di pulau dan negara java, ada satu framework yang bisa digunakan untuk membaca langsung, namanya Jaccess.

pada prinsipnya, jaccess akan membaca metadata dari mdb file tadi dan juga datanya secara native, bukan dengan jdbc apalagi odbc.
Dari metadata mdb file, jaccess akan mendapatkan nama-nama tabel, nama-nama field pada setiap tabel. Kemudian record akan di baca dan di simpan dalam map, di petakan antara nama field dan valuenya untuk setiap record.Akan lebih bagus kalo kita liat bagaimana Jaccess itu: (more…)

Add comment March 28, 2007

Basic Security di Tomcat

Suatu kali, leader projectkku berkeinginan agar aplikasi yang sedang di develop alias under construction dapat di presentasikan di depan top manager. Karena waktu yang terburu-buru, maka ia minta aplikasi di taro di tempat umum, alias bisa di akses di internet. Nah karena amat sangat tergesa-gesa, dia minta segera dipasang security sesimple mungkin dalam waktu sejam. And then di putuskan di buat basic security. Berikut implementasinyanya…Oh ya ini juga masuk materi SCWCD lo…!.

Kita menggunakan web container Tomcat, maka langkah awalnya adalah mengeset password dan nama di Realms memory dengan menambahkan username password dan role di salah satu file tomcat yang berada di${CATALINA_HOME}/conf/tomcat-users.xml

secara default:
<tomcat-users>
<user name=”tomcat” password=”tomcat” roles=”tomcat” />
<user name=”role1″ password=”tomcat” roles=”role1″ />
<user name=”both” password=”tomcat” roles=”tomcat,role1″ />
</tomcat-users>
(more…)

Add comment December 14, 2006

SmsGate Way

SmsGate Way Ada beberapa thread yang menanyakan how to create SMSGate pake java, web base application.

Yang paling simple and gak perlu ngotak atik AT command tentunya pake SMSlib yang bisa didownload di www.SMSLib.com . Di dalam SmsLib.zip ini terdapat contoh kecil dalam versi gui, sebaiknya kalo mau mendevelop untuk web aplikasi ini, jangan terlalu memperhatikan.

Pertama coba dulu koneksi dengan gsm modem atau hp yang terhubung dengan Hyperterminal punyanya microsoft (biasanya di program>>Accesories>>Communication>> terminal) .

Saya pake HP 6610 nokia dengan kable data DKU5 + drivernya, asumsinya kita sudah menginstal ini sebelumnya.

tekan character AT dilanjutkan enter, jika koneksinya bagus maka muncul OK. Please jika tidak terlalu mengetahui AT command, jangan memasukan perintah selain AT, kecuali jika mau mengambil resiko device kita rusak.

kemudian di web aplikasi kita dibuat satu servlet yang akan melisten jika ada SMS masuk, maka ia akan mengirim message ini ke servlet yang lain untuk disimpan di Database atu melakukan bussines logic terlebih dahulu. Pada kasus saya, message sms saya terima kemudian saya kirim dengan menggunakan JMS ke MDB (Message Driven Bean). Jika aplikasi kita belum full j2ee , message bisa dikirim ke servlet lain dengan menambahkan ke url (doGet) atau disimpan dalam bentuk xml, atau…banyak kumungkinan tergantung anda

Servlet untuk menerima message dapat di download, nama classnya SmsGate WayServlet , formatnya dalam doc, silahkan dirubah ke java. Worpress gak ngijininin tipe java file di upload, dan saya set di web-xml untuk <load-on-startup>, sehingga langsung up servletnya sebagai thread .

Let’s get it on

8 comments November 6, 2006

Prepare for interview

Kelas Untuk bilangan Prima
public class PrimeNumber {

/**
* @param args
*/
public static void main(String[] args) {

//prime number from 0 – 100
int x=100;
System.out.println(2);//2 is exception case
for (int i = 0; i < x; i++) {

for(int j = 2; j <= i-1; j++) {
if (i%j==0){
//not prime
break;
} else if( j==i-1){
//already test for all number
System.out.println(i);

}
}
}

}

}

kelas untuk insertion Algoritma
public class InsertionAlgoritme {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub

int [] x=new int [5];
x[0]=9;
x[1]=7;
x[2]=3;
x[3]=6;
x[4]=10;

insertionSort(x);
System.out.print(“[");
for (int i = 0; i < x.length; i++) {
if (i==x.length-1)
System.out.print(x[i]+”]”);
else
System.out.print(x[i]+”,”);

}

}

private static void insertionSort(int numbers[]){
int i, j, index;
// {8,5,3,9,1}

for (i=1; i < numbers.length; i++) {

index = numbers[i];//5 ===>3

j = i;//j=1
while ((j > 0) && (numbers[j-1] > index)) {//8>5 ===>
numbers[j] = numbers[j-1];//[1]–>{8,8,3,9,1} ==> {5,3,8,9,1}
j = j – 1;
}
numbers[j] = index;//–>{5,8,3,9,1}
}
}

}

Add comment November 2, 2006

Bang sms siape neeeeh…

Rekan kursus yang sekelas sama aku nanya, “Jok, kamu bisa bikin SMSgateway enggak?”. Dalam hati gua, “wah kesempatan neh nambah daftar di CV, lagian saya belum punya pengalaman java bikin aplikasi yang non finance”.

Besoknya aku tanya bos Endy,, dia nyaranin pake php ama linux. Sorenya aku lempar thread ke JUG milis. Salah seorang yang jawab di milis namanya Pak Indra, nyaranin pake librarynya smsLib di http://smslib.org/ . Indra bilang dia dulu pake JSMEngine yang di kembangin jadi SMSLib.

Sebelumnya coba belajar pake frameworknya www.tambur.org. But Dokumentasinya sedikir, dan kurang banyak. Meskipun bisa aplly untuk wap, mms dan http. Need more time to learn this kind framework

Hari ini baru bisa pake lib nya, Sayang belom punya HPnya yang cocok buat receiver. Nunggu gajian dulu yo.

Add comment August 31, 2006

Apa itu Servlet?

Servlet adalah satu kelas dalam java yang mengekstend HttpServlet. Untuk membuat Web Aplikasi dengan java, jika kita tidak menggunakan framework, maka di buat servlet untuk menerima service dan memberikan response pada user yang membuat request.

contoh sederhana servlet;

public class UploadServlet extends HttpServlet {

protected void doPost (HttpServletRequest request, HttpServletResponse response)throws IOException,ServletException {

}

Add comment August 24, 2006


RSS SmartPhone

RSS Android

RSS Digg

Archives

Blog Stats

Meta

Visitors to this site

Blogroll

Friends