JBoss: Mengakrabkan Diri Dengan Bos


JBoss 5 punya kelebihan di arsitektur microcontainer-nya. Jika aku tidak membutuhkan komponen tertentu, misalnya clustering, aku dapat memilih untuk menjalankan server JBoss tanpa menyertakan komponen tersebut. Pada instalasi standard JBoss, aku dapat menemukan lima konfigurasi server bawaan di lokasi direktori %JBOSS_HOME%\server. Di direktori tersebut terdapat lima subdirektori, yaitu: all, default, minimal, standard, dan web. Seperti yang dapat ditebak dari namanya, minimal adalah konfigurasi yang paling sederhana untuk menjalankan JBoss tanpa dukungan web container, EJB dan JMS. Ini adalah konfigurasi yang paling ringan dan start-up yang paling cepat. Sebaliknya, all adalah konfigurasi yang menjalankan seluruh komponen yang tersedia, termasuk RMI/IIOP dan clustering. Secara default, konfigurasi yang dipakai adalah default yang menyediakan komponen yang umum dipakai oleh aplikasi JEE, dan tidak menyertakan dukungan seperti IIOP dan clustering.

Di dalam masing-masing direktori server configuration, terdapat beberapa direktori seperti direktori conf yang berisi file konfigurasi, direktori deploy yang berisi aplikasi JEE yang ingin aku jalankan, dan direktori lib yang berisi library JAR untuk aplikasi di server configuration ini.

Untuk menjalankan JBoss dengan konfigurasi tertentu, aku dapat menggunakan argument “-c” saat memanggil run.bat (atau run.sh untuk Linux). Misalnya, untuk menjalankan server configuration minimal, aku mengetikkan perintah berikut di command prompt:

run -c minimal

Setelah JBoss menyelesaikan bootstrap-nya, aku akan mendapatkan baris informasi seperti:

Started in 8s:406ms

Sebagai perbandingan, jika aku menjalankan server configuration all, JBoss menampilkan baris ini:

Started in 1m:8s:453ms

Selisih waktu untuk startup-nya lumayan terasa, tapi aku rasa aku tidak akan pernah memakai server configuration all, selain untuk mencoba seluruh kemampuan JBoss.

Untuk membuat konfigurasi server sesuai kebutuhanku, aku harus mengerti bagaimana cara kerja file konfigurasi JBoss yang terdapat di folder conf. File jboss-service.xml akan dijalankan setelah server menjalankan microcontainer. File ini dibutuhkan untuk core services lama yang belum dalam bentuk microcontainer bean atau mbean. Sisanya, service non-core yang hot-deployable terdapat di folder deploy. Cara yang paling mudah untuk membuat server configuration sesuai kebutuhan adalah dengan men-copy dari salah satu folder bawaan JBoss, kemudian meng-edit jboss-service.xml serta menghapus/menambahkan services di folder deploy.

O ya, instalasi JBoss menyertakan database Hypersonic, dimana descriptornya berupa file hsqldb-ds.xml di folder deploy. Umumnya, untuk program dengan kualitas produksi, orang-orang akan memakai database dengan yang lebih baik seperti Oracle. Aku akan mengganti database default Hypersonic dengan database Oracle yang terinstall di komputerku. Aku mulai dengan menghapus hsqldb-ds.xml dari folder deploy. Lalu, aku mencopy library jdbc milik Oracle ke folder lib di folder server configuration yang aku pakai. Kemudian, pada direktori deploy, aku membuat file baru bernama oracle-ds.xml. Isinya seperti berikut:

<?xml version="1.0" encoding="UTF-8"?>
<datasources>
  <local-tx-datasource>
    <jndi-name>DefaultDS</jndi-name>
    <connection-url>jdbc:oracle:thin:@localhost:1521:latihan</connection-url>
    <driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
    <user-name>scott</user-name>
    <password>tiger</password>
    <valid-connection-checker-classname>
       org.jboss.resource.adapter.jdbc.vendor.OracleValidConnectionChecker
    </valid-connection-checker-classname>
    <metadata>
      <type-mapping>Oracle10g</type-mapping>
    </metadata>
  </local-tx-datasource>
</datasources>

Pada konfigurasi di atas, aku memakai Oracle Database dengan SID latihan yang ter-install di komputer yang sama. User name yang aku pakai adalah user name bawaan database Oracle, yaitu scott dan default password-nya tiger.

Aku kemudian me-restart JBoss, dan melihat banyak pesan kesalahan. Untuk sekarang aku akan mengabaikannya dulu. Yang perlu aku lakukan adalah memeriksa apakah koneksi database berlangsung dengan lancar. Caranya adalah dengan membuat direktori baru di direktori deploy dengan nama test.war (ini nama direktori, bukan nama file). Di dalam direktori ini, aku membuat sebuah file baru, dengan nama index.jsp yang isinya:

<%@page contentType="text/html"
  import="java.util.*,javax.naming.*,javax.sql.DataSource,java.sql.*"
%>
<%
DataSource ds = null;
Connection con = null;
PreparedStatement pr = null;
InitialContext ic;
try {
  ic = new InitialContext();
  ds = (DataSource)ic.lookup( "java:/DefaultDS" );
  con = ds.getConnection();
  pr = con.prepareStatement("SELECT ENAME FROM EMP");
  ResultSet rs = pr.executeQuery();
  while (rs.next()) {
    out.println("<br> " +rs.getString("ENAME"));
  }
  rs.close();
  pr.close();
}catch(Exception e){
  out.println("Exception thrown " +e);
}finally{
  if(con != null){
    con.close();
  }
} %>

Program di atas akan menampilkan kolom ENAME dari tabel EMP milik schema SCOTT. Untuk menjalankannya, aku membuka browser dan mengetikkan alamat ini: http://localhost:8080/test/index.jsp. Jika halaman yang muncul adalah nama-nama yang tercantum di tabel EMP, berarti database Oracle telah ter-setup dengan baik dan siap dipakai.

Lalu kenapa banyak pesan kesalahan saat menjalankan JBoss? Itu karena beberapa services mengharapkan tabel-tabel tertentu di database, dan aku belum membuatnya. Database Hypersonic bawaan JBoss menyimpan informasi tabel di file data\hypersonic\localDB.script.

Perihal Solid Snake
I'm nothing...

Apa komentar Anda?

Please log in using one of these methods to post your comment:

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

%d blogger menyukai ini: