WildFly Naming Subsystem Configuration

From NovaOrdis Knowledge Base
Jump to navigation Jump to search

Internal

Overview

The "naming" subsystem contains configuration related to various JNDI namespaces.

<subsystem xmlns="urn:jboss:domain:naming:1.4">
    <remote-naming/>
</subsystem>

Configuration

<remote-naming>

If present, this element activates the remote naming server, that allows access to items bound in the java:jboss/exported JNDI context. More details about the JBoss exported JNDI namespace and the remote naming server can be found here:

WildFly JNDI Concepts - Exporting for Access by Remote JNDI Clients

Importing an External JNDI Context

This section describes the configuration required to import an external JNDI context into the local JND namespace. The external JNDI context must be exported by a remote server. More details about external JNDI contexts are available here:

External JNDI Contexts

Provided that remote JNDI objects have been bound into an externally exported context ("java:/jboss/export") by a remote server, the can be made available locally by declaring an "external-context" in the "naming" subsystem configuration of the local server:

<subsystem xmlns="urn:jboss:domain:naming:1.4">
    ...
    <bindings>
        <external-context name="java:global/remote-hornetq" 
                         module="org.jboss.remote-naming" 
                         class="javax.naming.InitialContext">
            <environment>
                <property name="java.naming.factory.initial" value="org.jboss.naming.remote.client.InitialContextFactory"/>
                <property name="java.naming.provider.url" value="remote://${remote.hornetq.node.one.address}:${remote.hornetq.node.one.remoting.port},remote://${remote.hornetq.node.two.address}:${remote.hornetq.node.two.remoting.port}"/>
                <property name="java.naming.security.principal" value="${remoting.user.name}"/>
                <property name="java.naming.security.credentials" value="${remoting.password}"/>
            </environment>
        </external-context>
    </bindings>
</subsystem>

Accessing the External JNDI Context

The external-context's "name" is the local JNDI name to bind to. The external namespace will be accessible as an JNDI Context, as described below, in the "API

More details about external JNDI Contexts can be found here:

A working example is available here:

https://github.com/NovaOrdis/playground/tree/master/jboss/messaging/sending-and-receiving-from-remote-destinations