이 콘텐츠는 선택한 언어로 제공되지 않습니다.

Chapter 20. Using the qpid-java AMQP 0-10 client


20.1. A Simple Messaging Program in Java JMS

The following program shows how to send and receive a message using the qpid-java client. JMS programs typically use JNDI to obtain connection factory and destination objects which the application needs. In this way the configuration is kept separate from the application code itself.
In this example, we create a JNDI context using a properties file, use the context to lookup a connection factory, create and start a connection, create a session, and lookup a destination from the JNDI context. Then we create a producer and a consumer, send a message with the producer and receive it with the consumer.
package org.apache.qpid.example.jmsexample.hello;

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

public class Hello {

    public Hello() {
    }

    public static void main(String[] args) {
    	Hello producer = new Hello();
        producer.runTest();
    }

    private void runTest() {
    	try {
    Properties properties = new Properties();
        properties.load(this.getClass().getResourceAsStream("hello.properties"));  
        Context context = new InitialContext(properties);   
  
        ConnectionFactory connectionFactory
          = (ConnectionFactory) context.lookup("qpidConnectionfactory"); 	
    	Connection connection = connectionFactory.createConnection();
    	connection.start(); 

	  	Session session=connection.createSession(false,Session.AUTO_ACKNOWLEDGE);
	  	Destination destination = (Destination) context.lookup("topicExchange"); 

	  	MessageProducer messageProducer = session.createProducer(destination);  
	  	MessageConsumer messageConsumer = session.createConsumer(destination);  

	  	TextMessage message = session.createTextMessage("Hello world!");
	  messageProducer.send(message);

	  message = (TextMessage)messageConsumer.receive();    
	  System.out.println(message.getText());

	  connection.close();  
	  context.close();   
    }
    catch (Exception exp) {
    	exp.printStackTrace();
    }
	}
}
Copy to Clipboard Toggle word wrap
Explanation

Here is an explanation of the program code:

properties.load(this.getClass().getResourceAsStream("hello.properties"));
Copy to Clipboard Toggle word wrap
Loads the JNDI properties file, which specifies connection properties, queues, topics, and addressing options.
Context context = new InitialContext(properties);
Copy to Clipboard Toggle word wrap
Creates the JNDI initial context.
ConnectionFactory connectionFactory
          = (ConnectionFactory) context.lookup("qpidConnectionfactory");
Copy to Clipboard Toggle word wrap
Creates a JMS connection factory for Qpid.
Connection connection = connectionFactory.createConnection();
Copy to Clipboard Toggle word wrap
Creates a JMS connection.
connection.start();
Copy to Clipboard Toggle word wrap
Activates the connection.
Session session=connection.createSession(false,Session.AUTO_ACKNOWLEDGE);
Copy to Clipboard Toggle word wrap
Creates a session. This session is not transactional (transactions='false'), and messages are automatically acknowledged.
Destination destination = (Destination) context.lookup("topicExchange");
Copy to Clipboard Toggle word wrap
Creates a destination for the topic exchange, so senders and receivers can use it.
MessageProducer messageProducer = session.createProducer(destination);
Copy to Clipboard Toggle word wrap
Creates a producer that sends messages to the topic exchange.
MessageConsumer messageConsumer = session.createConsumer(destination);
Copy to Clipboard Toggle word wrap
Creates a consumer that reads messages from the topic exchange.
message = (TextMessage)messageConsumer.receive();
Copy to Clipboard Toggle word wrap
Reads the next available message.
connection.close();
Copy to Clipboard Toggle word wrap
Closes the connection, all sessions managed by the connection, and all senders and receivers managed by each session.
context.close();
Copy to Clipboard Toggle word wrap
Closes the JNDI context.
hello.properties file

The contents of the hello.properties file are shown below.

 java.naming.factory.initial
	  = org.apache.qpid.jndi.PropertiesFileInitialContextFactory

# connectionfactory.[jndiname] = [ConnectionURL]
connectionfactory.qpidConnectionfactory
   = amqp://guest:guest@clientid/test?brokerlist='tcp://localhost:5672' 
# destination.[jndiname] = [address_string]
destination.topicExchange = amq.topic
Copy to Clipboard Toggle word wrap
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat