Greate openEJB for Desktop App (2)
ini tutorial lanjutan dari bagian pertama :
sekarang kita coba bikin project openEJB pake NetBeans
, pertama buat 2 project misal gw bikin project “HelloModel” ama “HelloTest”, helloModel itu nanti kita isi dengan EJB dan hellotest kita isi ama contoh pemanggilan ejb lewat open ejb
sekarang di project hellomodel masukkan library “ejb31-api-experimental-3.1.jar” ama “javaee-api-5.0-1.jar” yang ada di folder “lib” tempat openEJB.
setelah itu buat skrip ini :
HelloRemote.java
/*
* DILARANG MENGUBAH ATAU MENGHAPUS HAK CIPTA INI.
*
* Hak Cipta 2008 Eko Kurniawan Khannedy.
* Semua isi dalam file ini adalah hak milik dari Eko Kurniawan Khannedy.
* Anda tak diperkenankan untuk menggunakan file atau mengubah file ini
* kecuali Anda tidak menghapus atau merubah hak cipta ini.
*
* Pemilik tidak bertanggung jawab jika Anda menyalah gunakan file ini
* dan Pemilik TIDAK MENJAMIN apapun atas file ini.
*
* Anda bisa menghubungi pemilik hak cipta ini di :
* email : echo.khannedy@gmail.com
* blog : http://eecchhoo.wordpress.com/
* ym : echo_khannedy
*/
package org.eecchhoo.hellomodel;
import javax.ejb.Remote;
/**
*
* @author echo
*/
@Remote
public interface HelloRemote {
public String sayHello(String name);
}
HelloBean.java
/*
* DILARANG MENGUBAH ATAU MENGHAPUS HAK CIPTA INI.
*
* Hak Cipta 2008 Eko Kurniawan Khannedy.
* Semua isi dalam file ini adalah hak milik dari Eko Kurniawan Khannedy.
* Anda tak diperkenankan untuk menggunakan file atau mengubah file ini
* kecuali Anda tidak menghapus atau merubah hak cipta ini.
*
* Pemilik tidak bertanggung jawab jika Anda menyalah gunakan file ini
* dan Pemilik TIDAK MENJAMIN apapun atas file ini.
*
* Anda bisa menghubungi pemilik hak cipta ini di :
* email : echo.khannedy@gmail.com
* blog : http://eecchhoo.wordpress.com/
* ym : echo_khannedy
*/
package org.eecchhoo.hellomodel;
import javax.ejb.Stateless;
/**
*
* @author echo
*/
@Stateless
public class HelloBean implements HelloRemote {
public String sayHello(String name) {
return "Hello " + name;
}
}
setelah itu build project hellomodel sehingga tercipta folder dist dalam project tersebut lalu akan ada file hellomodel.jar
sekarang jalankan openejb server dengan mengetik “openejb start” di command seperti terlihat dalam gambar dibawah :
kalo tertulis “Ready” berarti server dah jalan
sekarang buat folder “apps” dalam folder openEJB
sekarang tinggal deploy file hellomodel.jar caranya masuk ke folder hellomodel.jar lewat command, lalu keti “openejb deploy hellomodel.jar” :
sekarang proses deploy berhasil dan kita bisa memanggil ejb HelloBean dengan nama “HelloBeanRemote” seperti yang tertulis dalam hasil trace deploy
sekarang kita pindah ke Project HelloTest. pertama masukkan seluruh library yang ada dalam folder lib ke project tersebut lalu buat class utama untuk mencoba ejb dari helloremote. dan jangan lupa masukkan hellomodel.jar ke project hellotest :
/*
* DILARANG MENGUBAH ATAU MENGHAPUS HAK CIPTA INI.
*
* Hak Cipta 2008 Eko Kurniawan Khannedy.
* Semua isi dalam file ini adalah hak milik dari Eko Kurniawan Khannedy.
* Anda tak diperkenankan untuk menggunakan file atau mengubah file ini
* kecuali Anda tidak menghapus atau merubah hak cipta ini.
*
* Pemilik tidak bertanggung jawab jika Anda menyalah gunakan file ini
* dan Pemilik TIDAK MENJAMIN apapun atas file ini.
*
* Anda bisa menghubungi pemilik hak cipta ini di :
* email : echo.khannedy@gmail.com
* blog : http://eecchhoo.wordpress.com/
* ym : echo_khannedy
*/
package org.eecchhoo.hellotest;
import java.util.Properties;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.rmi.PortableRemoteObject;
import org.apache.openejb.client.RemoteInitialContextFactory;
import org.eecchhoo.hellomodel.HelloRemote;
/**
*
* @author echo
*/
public class HelloTest {
/**
* @param args the command line arguments
* @throws NamingException
*/
public static void main(String[] args) throws NamingException {
// TODO code application logic here
Properties properties = new Properties();
properties.setProperty(Context.INITIAL_CONTEXT_FACTORY, RemoteInitialContextFactory.class.getName());
// tergantung lokasi server openEJB
properties.setProperty(Context.PROVIDER_URL, "ejbd://localhost:4201");
InitialContext context = new InitialContext(properties);
Object ref = context.lookup("HelloBeanRemote");
HelloRemote helloRemote = (HelloRemote) PortableRemoteObject.narrow(ref, HelloRemote.class);
System.out.println(helloRemote.sayHello("echo keren!!!"));
}
}
sekarang kalo dijalanin maka akan keluar :
Hello echo keren!!!
hehehehe
selamat anda telah berhasil !!!!!!


Btw apa sih asyik-nya EJB klo boleh tahu :”> maklum masih barang aneh nih
EJB bisa manage transaksi alias safethread, jadi kita gak perlu khawatir akan masalah transaksi (tapi di JPA) karena semuanya di handle ama EJB
selain itu EJB juga support messenging, jadi gak perlu pake JMS lagi, cukup pake EJB kita bisa mendapat fasilitas JMS
dan yang lebih serunya kita gak perlu deklarasikan begintransaction dan committransaction, karena semuanya dah diatur ama EJB
trus EJB juga bisa dipake bareng ama web ato desktop, dan juga EJB bisa dijadikan sebagai WebService
gimana tergiyur belajar EJB gak?
He..he…

menarik juga tuh messaging-nya
Sekarang masih main2x di spring + http-invoker-nya
Lagi cari2x juga tuh buat messaging, keknya keren yah openEJB
Btw thx buat referensinya loh :*
)
yup
sama-saman
aku ingin seperti kamu yang bisa membuat berbagai bentuk software
[...] greate openEJB for your desktop app (2) [...]
Anjritt.. !! kereeennn lu …..
J2EE, j2SE, J2ME …. mau ente sikat. sungguh Dewa….
java it’s rock..
[...] greate openEJB for your desktop app (2) [...]
gan masih awam dengan EJB,….
untuk desktop/swing apa masih tetep menggunakan urlnya di set propertiesnya?