Mengirim Pesan ke JMS Server

Seperti janji saya pada tulisan sebelumnya yaitu Konfigurasi JMS Queue Oracle Weblogic maka pada tulisan ini saya akan mencoba untuk menulis tentang JMS CLient sederhana untuk mengirimkan message ke JMS Server. Pada tulisan kali ini saya sengaja tidak menggunakan framework misalnya spring untuk JMS karena diharapkan kita bisa mengerti sedikit cara kerja dalam mengirimkan pesan ke JMS server.

Untuk memulai praktikum kali ini maka JMS Server yang telah kita konfigurasikan harus dinyalakan terlebih dahulu. Langkah-langkah untuk mengirim pesan ke JMS server adalah sebagai berikut:

  • Membuat objek InitialContext berdasarkan JMS Server yang akan kita akses.
  • Membuat object ConnectionFactory untuk queue yang akan kita akses.
  • Membuat object QueueConnection berdasarkan ConnectionFactory yang sudah kita buat.
  • Membuat object QueueSession dimana untuk parameternya bisa dibaca di www.javaworld.com.
  • Membuat Queue yang akan kita baca berdasarkan InitialContext yang sudah kita definisikan.
  • Membuat object QueueSender untuk kemudian membuat Message yang akan dikirimkan
  • Kirimkan pesan untuk kemudian tutup queueConnection.

Semua langkah-langkah tersebut jika ditulis dalam bahasa pemrograman java dapat dilihat pada source code berikut

package id.web.herpur.jms;

import java.util.Date;
import java.util.Properties;
import javax.jms.*;
import javax.naming.Context;
import javax.naming.InitialContext;

/**
 *
 * @author hape
 */
public class PengirimMain {

    public static void main(String[] args) {
        try {
            Properties props = new Properties();
            props.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
            props.put(Context.PROVIDER_URL, "t3://localhost:8001");
            props.put(Context.SECURITY_PRINCIPAL, "weblogic");
            props.put(Context.SECURITY_CREDENTIALS, "weblogic");

            // init initialContext
            InitialContext context = new InitialContext(props);

            // lookup QueueConnectionFactory
            QueueConnectionFactory queueFactory = (QueueConnectionFactory) context.lookup("jms/HelloWorldConnectionFactory");

            // create a queue connection
            QueueConnection queueConnection = queueFactory.createQueueConnection();

            // create a queue session
            QueueSession queueSession = queueConnection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);

            // lookup queue
            Queue queue = (Queue) context.lookup("jms/HelloWorldQueue");
                        
            // create a queue sender
            QueueSender queueSender = queueSession.createSender(queue);
            queueSender.setDeliveryMode(DeliveryMode.NON_PERSISTENT);

            // create a simple message
            String strMessage = "Hello " + new Date().toString();
            TextMessage message = queueSession.createTextMessage(strMessage);

            // send the message
            queueSender.send(message);

            // close the queue connection
            queueConnection.close();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
}

Untuk library yang dibutuhkan bisa dilihat pada potongan source code file pom.xml dibawah. Pada tulisan ini source code digunakan dengan menggunakan Netbeans dan untuk setting mavennya bisa dilihat pada tulisan saya sebelumnya yaitu konfigurasi maven di Netbeans.

        <dependency>
            <groupId>org.glassfish</groupId>
            <artifactId>javax.jms</artifactId>
            <version>3.1</version>
        </dependency>    
        
        <dependency>
            <groupId>local.wlclient</groupId>
            <artifactId>wlclient</artifactId>
            <version>10.3</version>
        </dependency>        

        <dependency>
            <groupId>local.wljmsclient</groupId>
            <artifactId>wljmsclient</artifactId>
            <version>10.3</version>
        </dependency> 

Setelah program dijalankan untuk mengecek apakah pesan sudah sampai ke JMS Server atau belum maka dari admin console anda menuju ke Services => Messaging => JMS Modules untuk kemudian klik pada System Module dimana Queue yang akan kita tuju berada. Klik pada Queue yang akan kita lihat untuk kemudian klik tab Monitoring maka akan didapatkan seperti gambar berikut.

cek message in queue weblogic

Jika kita ingin melihat isi messagenya maka dari gambar diatas kita hanya tinggal tekan tombol Show Messages maka akan ditampilkan isi pesan seperti pada gambar dibawah.

isi pesan di queue weblogic

Demikian tulisan ini diakhiri, sampai ketemu di tulisan saya berikutnya yaitu membaca message dari JMS Server.

Sumber: www.novell.com




Leave a Reply