public final class JNDI extends Object
Utility class for simplifying some web related tasks that use JNDI under the hood, such as getting the
<env-entry>
from web.xml
.
Note that the JSF spec defines one parameter that can optionally be defined via an env entry instead of the typical
context/init parameter; ProjectStage.PROJECT_STAGE_JNDI_NAME
. Mojarra defines an additional proprietary one:
"java:comp/env/ClientStateSavingPassword".
Modifier and Type | Field and Description |
---|---|
static String |
JNDI_NAME_PREFIX_ENV_ENTRY
JNDI name prefix for environment entries:
java:comp/env |
static String |
JNDI_NAMESPACE_APPLICATION
JNDI namespace to lookup local enterprise beans within the same application:
java:app |
static String |
JNDI_NAMESPACE_COMPONENT
JNDI namespace to lookup components:
java:comp |
static String |
JNDI_NAMESPACE_GLOBAL
JNDI namespace to lookup all enterprise beans:
java:global |
static String |
JNDI_NAMESPACE_MODULE
JNDI namespace to lookup local enterprise beans within the same module:
java:module |
static String |
JNDI_NAMESPACE_PREFIX
JNDI namespace prefix, including the colon:
java: |
static Pattern |
PATTERN_EJB_INTERFACE_SUFFIX
Pattern for local or remote suffix in EJB interface name.
|
Modifier and Type | Method and Description |
---|---|
static <T> T |
getEnvEntry(String name)
Returns the named environment entry for the deployment component from where this is called.
|
static String |
guessJNDIName(Class<?> beanClass)
Guess JNDI name of given bean class, which can be a local or remote EJB.
|
static String |
guessJNDIName(String className)
Guess JNDI name of given fully-qualified class name.
|
static <T> T |
lookup(String name)
Returns the named object from the default JNDI instance.
|
public static final String JNDI_NAMESPACE_PREFIX
java:
public static final String JNDI_NAMESPACE_COMPONENT
java:comp
public static final String JNDI_NAMESPACE_GLOBAL
java:global
public static final String JNDI_NAMESPACE_MODULE
java:module
public static final String JNDI_NAMESPACE_APPLICATION
java:app
public static final String JNDI_NAME_PREFIX_ENV_ENTRY
java:comp/env
public static final Pattern PATTERN_EJB_INTERFACE_SUFFIX
public static <T> T getEnvEntry(String name)
<env-entry-value>
of a <env-entry>
in
web.xml
associated with the given <env-entry-name>
.
Note that the name used here is relative to "java:comp/env", which is exactly as it appears in web.xml
.
Example:
web.xml
<env-entry> <cont>org.omnifaces.TEST_INTEGER</env-entry-name> <env-entry-type>java.lang.Integer</env-entry-type> <env-entry-value>10</env-entry-value> </env-entry>
Lookup in Java using relative name
Integer test = JNDI.getEnvEntry("org.omnifaces.TEST_INTEGER");
Lookup in Java using full JNDI name
Integer test = JNDI.lookup("java:comp/env/org.omnifaces.TEST_INTEGER");
Note that even the "full JNDI name" is relative to the "deployment component" from which the lookup is done.
To use a true global JNDI name an additional <lookup-name>
should be specified in web.xml
.
Environment entries can also be injected using Resource
.
T
- The expected return type.name
- the environment entry name relative to "java:comp/env".null
if
there is none.ClassCastException
- When T
is of wrong type.InitialContext.lookup(String)
public static <T> T lookup(String name)
T
- The expected return type.name
- the name of the object to be retrievednull
if there is none.ClassCastException
- When T
is of wrong type.InitialContext.lookup(String)
public static String guessJNDIName(Class<?> beanClass)
beanClass
- The bean class to guess JNDI name for.Copyright © 2012–2021 OmniFaces. All rights reserved.