8.5.2. 使用 JNDI 连接到服务器


如果客户端驻留在与服务器相同的 JVM 中,它可以使用 InVmConnectionFactory 提供的 in-vm 连接器。以下是如何配置 InvmConnectionFactory,如 standalone-full.xml 中找到。

<connection-factory
  name="InVmConnectionFactory"
  entries="java:/ConnectionFactory"
  connectors="in-vm" />

注意 entries 属性的值。使用 InVmConnectionFactory 的客户端应在查找过程中丢弃前导 java:/,如下例所示:

InitialContext ctx = new InitialContext();
ConnectionFactory cf = (ConnectionFactory)ctx.lookup("ConnectionFactory");
Connection connection = cf.createConnection();

远程客户端使用 RemoteConnectionFactory,它通常配置如下:

<connection-factory
  name="RemoteConnectionFactory"
  scheduled-thread-pool-max-size="10"
  entries="java:jboss/exported/jms/RemoteConnectionFactory"
  connectors="http-connector"/>

远程客户端应忽略 条目 值的前导 java:jboss/exported/,如下代码片段示例:

final Properties env = new Properties();
env.put(Context.INITIAL_CONTEXT_FACTORY, "org.wildfly.naming.client.WildFlyInitialContextFactory");
env.put(Context.PROVIDER_URL, "http-remoting://remotehost:8080");
InitialContext remotingCtx = new InitialContext(env);
ConnectionFactory cf = (ConnectionFactory) remotingCtx.lookup("jms/RemoteConnectionFactory");

注意 PROVIDER_URL 属性的值,以及客户端如何使用 JBoss EAP http-remoing 协议。另请注意客户端如何使用 org.wildfly.naming.client.WildFlyInitialContextFactory,这意味着客户端拥有此类及其包含的客户端 JAR 在类路径中的某处。对于 maven 项目,这可以通过包含以下依赖项来实现:

<dependencies>
  <dependency>
    <groupId>org.wildfly</groupId>
    <artifactId>wildfly-jms-client-bom</artifactId>
    <type>pom</type>
  </dependency>
</dependencies>
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部