Sebagai Java Developer, khususnya JavaEE pasti tidak asing dengan Application Server baik itu Glassfish, Weblogic, TomEE, dll. Kali ini saya ingin berbagi pengalaman menggunakan Application Server Wildfly yang mana merupakan suksesor dari JBoss.

Installasi Wildfly

Cara installasi Wildfly terbilang sangat mudah, kita cukup mendownload Wildfly pastikan untuk memilih versi 10.1.0.Final karena merupakan versi terbaru dan support JavaEE 7. Setelah berhasil mendownload extract folder Wildfly pada folder yang dikehendaki, untuk mempermudah penjelasan maka selanjutnya folder Wildfly akan direpresentasikan menjadi WILDFLY_HOME.

Kemudian untuk menjalankan Wildfly, cukup jalankan script:

  • windows: WILDFLY_HOME/bin/standalone.bat
  • linux: WILDFLY_HOME/bin/standalone.sh

Kemudian akses URL berikut: http://127.0.0.1:8080 jika muncul halaman utama Wildfly maka Wildfly telah berhasil sukses kita install.

Create Wildfly User

Tahap selanjutnya adalah membuat user sehingga kita dapat mengakses halaman konfigurasi wildfly. Caranya sangat sederhana, melalui Command Line CLI ekseskusi perintah:

  • windows: WILDFLY_HOME/bin/add-user.bat
  • linux: WILDFLY_HOME/bin/add-user.sh

Untuk User Type pilih (a) Management User kemudian isikan username dan password yang diinginkan. Selanjutnya adalah pada halaman utama Wildfly pilih menu Administration Control, isikan username dan password yang sudah kita buat dan nantinya kita akan diarahkan ke halaman: http:/127.0.0.1:9990/console/App.html#home.

Wildfly Console Page

Database Driver

Sebelum kita dapat mengakses database kita terlebih dahulu harus mendaftarkan JDBC Driver sesuai database yang akan digunakan pada Wildfly, pendaftaran JDBC Driver hanya dilakukan sekali saja. Untuk pendaftaran JDBC Driver terdapat dua cara yakni dengan mendeploy file jar selayaknya project biasa, atau sebagai module. Penjelasan saya kali ini adalah mendaftarkan sebagai module.

Langkah pertama adalah download terlebih dahulu mysql-connector. Setelah itu cek direktori pada Wildfly WILDFLY_HOME/modules/system/layers/base/ dan disinilah semua dependency JavaEE tersimpan, karena domain dari mysql connector adalah com maka kita buat folder baru yang nantinya akan terlihat seperti berikut: WILDFLY_HOME/modules/system/layers/base/com/mysql/driver/main.

Copy file jar mysql-connector ke folder baru tersebut, kemudian buat file module.xml yang berisikan:

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.3" name="com.mysql.driver">
    <resources>
        <resource-root path="mysql-connector-java-5.1.40-bin.jar" />
    </resources>
    <dependencies>
        <module name="javax.api"/>
        <module name="javax.transaction.api"/>
    </dependencies>
</module>

Selanjutnya adalah mendaftarkan driver yang baru saja kita copy kedalam folder module tadi dengan cara mengakses CLI:

./WILDFLY_HOME/bin/jboss-cli.sh

Pada awalnya kita akan mendapatkan pesan berupa:

You are disconnected at the moment. Type 'connect' to connect to the server or 'help' for the list of supported commands.
[disconnected /]

Masih pada CLI ketikan perintah connect kemudian tekan enter, jika berhasil maka kita akan mendapat tampilan seperti berikut:

[standalone@localhost:9990 /]

Selanjutnya adalah mendaftarkan mysql-connector kita dengan perintah

/subsystem=datasources/jdbc-driver=mysql:add(driver-name=mysql,driver-module-name=com.mysql.driver,driver-class-name=com.mysql.jdbc.Driver)

Jika berhasil maka kita akan mendapat pesan seperti berikut:

{"outcome" => "success"}

Sebagai tambahan berikut adalah contoh module.xml dan perintah untuk menambahkan driver postgreSQL dengan catatan folder untuk postgresql connector diletakkan pada:

WILDFLY_HOME/modules/system/layers/base/org/postgresql/main

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="org.postgresql">
    <resources>
        <resource-root path="postgresql-42.0.0.jre7.jar"/>
    </resources>
    <dependencies>
        <module name="javax.api"/>
        <module name="javax.transaction.api"/>
    </dependencies>
</module>
/subsystem=datasources/jdbc-driver=postgresql:add(driver-name=postgresql,driver-module-name=org.postgresql,driver-class-name=org.postgresql.Driver)

Datasource

Tahap terakhir adalah membuat datasource, khusus untuk datasource harus dibuat per database yang akan digunakan. Semisal kita memiliki aplikasi yang akan mengakses sebuah database pada mysql misal perpustakaan, maka kita harus membuat datasource untuk database perpustakan tersebut. Untungya langkah untuk membuat datasource dapat menggunakan menu GUI yang telah disediakan oleh Wildfly.

Pada Wildfly admin console pilih menu Configuration -> Subsytem -> Datasource -> Non-XA. Kemudian click add.

create_datasource

Dari sekian banyak pilihan karena kita menggunakan mysql maka pilih mysql driver.

mysql_datasource

Isi nama datasource serta JNDI Name sesuai project kita.

naming_datasource

Pada tahap kedua untuk mempermudah dan karena kita telah mendaftarkan mysql-connector maka pilih tab Detected Driver maka akan muncul driver yang telah kita daftarkan sebelumnya, jika tidak muncul periksa kembali konfigurasi anda.

chose_driver

Terakhir adalah mengisi konfigurasi nama database, username dan password yang digunakan untuk mengakses database tersebut.

configure_connection

Berikut adalah contoh konfigurasi projek milik saya.

datasource_example

Setelah selesai selanjutnya adalah membuat file persistence.xml pada project anda yang dapat anda letakkan pada resources/META-INF

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
    <persistence-unit name="libraryPU" transaction-type="JTA">
        <jta-data-source>java:jboss/datasources/libraryDS</jta-data-source>
        <properties>
        </properties>
    </persistence-unit>
</persistence>

References