このコンテンツは選択した言語では利用できません。

3.2. A Simple Messaging Program in Java JMS


The following program shows how to send and receive a message using the Qpid JMS 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. This code should be straightforward for anyone familiar with Java JMS.

Example 3.1. "Hello world!" in Java

	  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"));  1
	  Context context = new InitialContext(properties);   2

	  ConnectionFactory connectionFactory
          = (ConnectionFactory) context.lookup("qpidConnectionfactory"); 3
	  Connection connection = connectionFactory.createConnection();  4
	  connection.start();  5

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

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

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

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

	  connection.close();  11
	  context.close();   12
	  }
	  catch (Exception exp) {
	  exp.printStackTrace();
	  }
	  }
	  }
Copy to Clipboard Toggle word wrap
1
Loads the JNDI properties file, which specifies connection properties, queues, topics, and addressing options. See Section 3.3, “Apache Qpid JNDI Properties for AMQP Messaging” for details.
2
Creates the JNDI initial context.
3
Creates a JMS connection factory for Qpid.
4
Creates a JMS connection.
5
Activates the connection.
6
Creates a session. This session is not transactional (transactions='false'), and messages are automatically acknowledged.
7
Creates a destination for the topic exchange, so senders and receivers can use it.
8
Creates a producer that sends messages to the topic exchange.
9
Creates a consumer that reads messages from the topic exchange.
10
Reads the next available message.
11
Closes the connection, all sessions managed by the connection, and all senders and receivers managed by each session.
12
Closes the JNDI context.
The contents of the hello.properties file are shown below.

Example 3.2. JNDI Properties File for "Hello world!" example

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

# connectionfactory.[jndiname] = [ConnectionURL]
connectionfactory.qpidConnectionfactory = amqp://guest:guest@clientid/test?brokerlist='tcp://localhost:5672' 1

# destination.[jndiname] = [address_string]
destination.topicExchange = amq.topic 2
Copy to Clipboard Toggle word wrap
1
Defines a connection factory from which connections can be created. The syntax of a ConnectionURL is given in Section 3.3, “Apache Qpid JNDI Properties for AMQP Messaging”.
2
Defines a destination for which MessageProducers and/or MessageConsumers can be created to send and receive messages. The value for the destination in the properties file is an address string. In the JMS implementation MessageProducers are analogous to senders in the Qpid Message API, and MessageConsumers are analogous to receivers.
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat