第 4 章 Configuration


本章介绍了将 AMQ JMS 实施绑定到您的 JMS 应用并设置配置选项的流程。

JMS 使用 Java 命名目录接口(JNDI)来注册和查找 API 实施和其他资源。这可让您编写代码到 JMS API,而不将它与特定的实施关联。

配置选项作为连接 URI 上的查询参数公开。

4.1. 配置 JNDI 初始上下文

JMS 应用使用从 InitialContextFactory 获取的 JNDI InitialContext 对象来查找 JMS 对象,如连接工厂。AMQ JMS 在 org.apache.qpid.jms.jndi.JmsInitialContextFactory 类中提供 InitialContextFactory 实施。

InitialContext 对象被实例化时,InitialContextFactory 实现会被发现:

javax.naming.Context context = new javax.naming.InitialContext();

要查找实施,必须在您的环境中配置 JNDI。实现这一目标的方法有三种:使用 jndi.properties 文件、使用系统属性或使用初始上下文 API。

使用 jndi.properties 文件

创建名为 jndi.properties 的文件,并将其放置在 Java 类路径中。使用键 java.naming.factory.initial 添加属性。

示例:使用 jndi.properties 文件设置 JNDI 初始上下文工厂

java.naming.factory.initial = org.apache.qpid.jms.jndi.JmsInitialContextFactory

在基于 Maven 的项目中,jndi.properties 文件放置在 <project-dir>/src/main/resources 目录中。

使用系统属性

设置 java.naming.factory.initial 系统属性。

示例:使用系统属性设置 JNDI 初始上下文工厂

$ java -Djava.naming.factory.initial=org.apache.qpid.jms.jndi.JmsInitialContextFactory ...

使用初始上下文 API

使用 JNDI 初始上下文 API 以编程方式设置属性。

示例:以编程方式设置 JNDI 属性

Hashtable<Object, Object> env = new Hashtable<>();

env.put("java.naming.factory.initial", "org.apache.qpid.jms.jndi.JmsInitialContextFactory");

InitialContext context = new InitialContext(env);

请注意,您可以使用同一 API 为连接工厂、队列和主题设置 JNDI 属性。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.