現在のエンタープライズ アプリケーションの開発は分散システムへの依存度が高まっているため、メッセージ キューの使用がますます重要になっています。 Java Message Service (JMS) は、メッセージング システムを簡単に構築するために使用できるメッセージ指向 API です。 Java Naming and Directory Interface (JNDI) は、ネーミング サービスおよびディレクトリ サービスにアクセスするための Java の標準 API です。 Java API 開発では、JMS 接続に JNDI を使用すると、メッセージ キューの管理と使用が容易になります。
JNDI は、主に実行時にネーミング サービスとディレクトリ サービスにアクセスするために使用される Java API です。これは、Lightweight Directory Access Protocol (LDAP)、Domain Name System (DNS)、Common Object Request Broker Architecture (CORBA) など、さまざまなネーミングおよびディレクトリ サービスにアクセスするための共通の方法を提供します。 JNDI はネーミング サービスとディレクトリ サービスの詳細を舞台裏に隠し、開発者がサービスによって提供されるオブジェクトを取得して使用する方法だけに集中できるようにします。
JMS は、アプリケーション間でメッセージを渡すために使用されるメッセージ指向 API です。 JMS を使用すると、キューまたはトピックにメッセージを送信し、指定した時間にメッセージを受信できます。 JMS は非同期メッセージングの機能を提供し、分散システム間の通信に理想的な方法となります。
Java API 開発では、JNDI を使用して JMS に接続すると非常に便利です。 JMS に接続するための基本的な手順は次のとおりです。
3.1 JNDI コンテキストの作成
最初に、JNDI コンテキストを作成する必要があります。 JMS では、コンテキストは接続と宛先の管理を担当するオブジェクトです。次のコードを使用して、JNDI 初期コンテキストを作成できます。
Hashtableenv = new Hashtable<>(); env.put(Context.INITIAL_CONTEXT_FACTORY,"org.apache.activemq.jndi.ActiveMQInitialContextFactory"); env.put(Context.PROVIDER_URL, "tcp://localhost:61616"); Context context = new InitialContext(env);
3.2 ConnectionFactory と Destination の取得
次に、ConnectionFactory オブジェクトと Destination オブジェクトを取得する必要があります。 ConnectionFactory は接続の作成に使用されるファクトリ オブジェクトであり、Destination はメッセージが送受信される宛先を表します。 ActiveMQ を使用している場合は、次のコードを使用してこれらのオブジェクトを取得できます。
ConnectionFactory factory = (ConnectionFactory) context.lookup("ConnectionFactory"); Destination destination = (Destination) context.lookup("dynamicQueues/TEST.QUEUE");
3.3 接続とセッションの作成
ConnectionFactory と Destination を取得した後、Connection オブジェクトと Session オブジェクトを作成できます。 。 ConnectionFactory を使用して接続を作成する場合、ユーザー名とパスワードを指定することもできます。次のコードは、接続の作成方法を示しています。
Connection connection = factory.createConnection("username", "password"); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
3.4 プロデューサとコンシューマの作成
ここで、プロデューサ (メッセージ送信用) とコンシューマ (メッセージ受信用) を作成できます。次のコードは、これらのオブジェクトの作成方法を示しています。
MessageProducer producer = session.createProducer(destination); MessageConsumer consumer = session.createConsumer(destination);
3.5 メッセージの送受信
最後に、Producer を使用してメッセージを送信し、Consumer を使用してメッセージを受信できます。次のコードは、これらの操作を実行する方法を示しています。
TextMessage message = session.createTextMessage("Hello World!"); producer.send(message); Message receivedMessage = consumer.receive(); if (receivedMessage instanceof TextMessage) { TextMessage textMessage = (TextMessage) receivedMessage; String text = textMessage.getText(); System.out.println(text); }
一般に、Java API 開発では、JNDI を使用して JMS に接続すると、より簡単に管理できます。そしてメッセージキューを使用します。 JNDI を使用すると、ConnectionFactory と Destination を簡単に取得し、Connection、Session、Producer、Consumer を作成できます。メッセージの送受信も簡単に行えます。したがって、JNDI を使用して JMS に接続することは、JMS を頻繁に使用する必要があるエンタープライズ アプリケーションに適しています。
以上がJava API開発におけるJMS接続にJNDIを使用するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。