第 4 章 Configuration


本章论述了将 AMQ JMS 实现绑定到 JMS 应用并设置配置选项的过程。

JMS 使用 Java 命名目录接口(JNDI)注册和查找 API 实施和其他资源。这可让您将代码写入 JMS API,而无需将其写入特定的实现。

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

4.1. 配置 JNDI 初始上下文

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

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

javax.naming.Context context = new javax.naming.InitialContext();
Copy to Clipboard Toggle word wrap

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

使用 jndi.properties 文件

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

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

java.naming.factory.initial = org.apache.qpid.jms.jndi.JmsInitialContextFactory
Copy to Clipboard Toggle word wrap

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

使用系统属性

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

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

$ java -Djava.naming.factory.initial=org.apache.qpid.jms.jndi.JmsInitialContextFactory ...
Copy to Clipboard Toggle word wrap

使用初始上下文 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);
Copy to Clipboard Toggle word wrap

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

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat