Greate openEJB for Desktop App (2)


ini tutorial lanjutan dari bagian pertama :

Greate openEJB for Desktop App (1)

sekarang kita coba bikin project  openEJB pake NetBeans :D, 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 : https://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 : https://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 :

image

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” :

image

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 : https://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 !!!!!!

Iklan

10 pemikiran pada “Greate openEJB for Desktop App (2)

  1. 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?

  2. 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 :* :))

  3. Ping balik: Belajar JaVa « WAHYU FIGHTER

  4. Ping balik: Tutorial Java dari Eko Kurniawan Khannedy « nge-WP@net

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s