Producer Application

Now let’s create a producer application which will send message to the RabbitMQ Queue.

Create Project

Using eclipse, select File → New → Maven Project. Tick the Create a simple project(skip archetype selection) and click Next.

Enter the details, as shown below −

  • groupId − com.tutorialspoint
  • artifactId − producer
  • version − 0.0.1-SNAPSHOT
  • name − RabbitMQ Producer

Click on Finish button and a new project will be created.

pom.xml

Now update the content of pom.xml to include dependencies for RabbitMQ.

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <groupId>com.tutorialspoint.activemq</groupId>
   <artifactId>producer</artifactId>
   <version>0.0.1-SNAPSHOT</version>
   <name>RabbitMQ Producer</name>
   <properties>
  &lt;java.version&gt;11&lt;/java.version&gt;
</properties> <dependencies>
  &lt;dependency&gt;
     &lt;groupId&gt;com.rabbitmq&lt;/groupId&gt;
     &lt;artifactId&gt;amqp-client&lt;/artifactId&gt;
     &lt;version&gt;5.14.2&lt;/version&gt;
  &lt;/dependency&gt;
  &lt;dependency&gt;
     &lt;groupId&gt;org.slf4j&lt;/groupId&gt;
     &lt;artifactId&gt;slf4j-api&lt;/artifactId&gt;
     &lt;version&gt;1.7.26&lt;/version&gt;
  &lt;/dependency&gt;
  &lt;dependency&gt;
     &lt;groupId&gt;org.slf4j&lt;/groupId&gt;
     &lt;artifactId&gt;slf4j-simple&lt;/artifactId&gt;
     &lt;version&gt;1.7.26&lt;/version&gt;
  &lt;/dependency&gt;
</dependencies> </project>

Now create a Producer class which will send message to the RabbitMQ Queue.

package com.tutorialspoint.rabbitmq;

import java.io.IOException;
import java.util.Scanner;
import java.util.concurrent.TimeoutException;

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;

public class Producer {
   private static String QUEUE = "MyFirstQueue";

   public static void main(String[] args) throws IOException, TimeoutException {
  ConnectionFactory factory = new ConnectionFactory();
  factory.setHost("localhost");
  try (Connection connection = factory.newConnection();
     Channel channel = connection.createChannel()) {
     channel.queueDeclare(QUEUE, false, false, false, null);
     Scanner input = new Scanner(System.in);
     String message;
     do {
        System.out.println("Enter message: ");
        message = input.nextLine();
        channel.basicPublish("", QUEUE, null, message.getBytes());
     } while (!message.equalsIgnoreCase("Quit"));
  }
} }

Producer class creates a connection, creates a channel, connects to a queue. If user enters quit then application terminates else it will send the message to the queue using basicPublish method.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *