Loading...

Using global variables in JNDI

Custom variables can be stored via JNDI over the naming subsystem in JBoss. Following example were executed for Java EE 6 and JBoss EAP 6.4.

display help to add operation

/subsystem=naming/binding=*:read-operation-description(name=add)

add JNDI variable

/subsystem=naming/binding=java\:global\/metrics\/configuration\/directory:add(binding-type=simple, value="/etc/metrics", type="java.lang.String")

This JNDI variable can be used for resource injection.

usage in Java

@Resource(lookup="java:global/metrics/configuration/directory", type=String.class)
private String configDir;

read JNDI variable

/subsystem=naming/binding=java\:global\/metrics\/configuration\/directory:read-resource

remove JNDI variable

/subsystem=naming/binding=java\:global\/metrics\/configuration\/directory:remove

add variable and check

[standalone@localhost:9999 /] /subsystem=naming/binding=java\:global\/metrics\/configuration\/directory:add(binding-type
=simple, value="/etc/metrics", type="java.lang.String")
{"outcome" => "success"}
[standalone@localhost:9999 /] /subsystem=naming/binding=java\:global\/metrics\/configuration\/directory:read-resource
{
 "outcome" => "success",
 "result" => {
 "binding-type" => "simple",
 "cache" => undefined,
 "class" => undefined,
 "environment" => undefined,
 "lookup" => undefined,
 "module" => undefined,
 "type" => "java.lang.String",
 "value" => "/etc/metrics"
 }
}