org.springframework.jndi
Class JndiObjectLocator

java.lang.Object
  extended by org.springframework.jndi.JndiAccessor
      extended by org.springframework.jndi.JndiLocatorSupport
          extended by org.springframework.jndi.JndiObjectLocator
All Implemented Interfaces:
InitializingBean
Direct Known Subclasses:
AbstractSlsbInvokerInterceptor, JndiObjectFactoryBean, JndiObjectTargetSource, JndiRmiClientInterceptor

public abstract class JndiObjectLocator
extends JndiLocatorSupport
implements InitializingBean

Convenient superclass for JNDI-based service locators, providing configurable lookup of a specific JNDI resource.

Exposes a "jndiName" property. This may or may not include the "java:comp/env/" prefix expected by J2EE applications when accessing a locally mapped (Environmental Naming Context) resource. If it doesn't, the "java:comp/env/" prefix will be prepended if the "resourceRef" property is true (the default is false) and no other scheme (e.g. "java:") is given.

Subclasses may invoke the lookup() method whenever it is appropriate. Some classes might do this on initialization, while others might do it on demand. The latter strategy is more flexible in that it allows for initialization of the locator before the JNDI object is available.

Since:
1.1
Author:
Juergen Hoeller
See Also:
setJndiName(java.lang.String), JndiAccessor.setJndiTemplate(org.springframework.jndi.JndiTemplate), JndiAccessor.setJndiEnvironment(java.util.Properties), JndiLocatorSupport.setResourceRef(boolean), lookup()

Field Summary
private  java.lang.Class<?> expectedType
           
private  java.lang.String jndiName
           
 
Fields inherited from class org.springframework.jndi.JndiLocatorSupport
CONTAINER_PREFIX
 
Fields inherited from class org.springframework.jndi.JndiAccessor
logger
 
Constructor Summary
JndiObjectLocator()
           
 
Method Summary
 void afterPropertiesSet()
          Invoked by a BeanFactory after it has set all bean properties supplied (and satisfied BeanFactoryAware and ApplicationContextAware).
 java.lang.Class<?> getExpectedType()
          Return the type that the located JNDI object is supposed to be assignable to, if any.
 java.lang.String getJndiName()
          Return the JNDI name to look up.
protected  java.lang.Object lookup()
          Perform the actual JNDI lookup for this locator's target resource.
 void setExpectedType(java.lang.Class<?> expectedType)
          Specify the type that the located JNDI object is supposed to be assignable to, if any.
 void setJndiName(java.lang.String jndiName)
          Specify the JNDI name to look up.
 
Methods inherited from class org.springframework.jndi.JndiLocatorSupport
convertJndiName, isResourceRef, lookup, lookup, setResourceRef
 
Methods inherited from class org.springframework.jndi.JndiAccessor
getJndiEnvironment, getJndiTemplate, setJndiEnvironment, setJndiTemplate
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

jndiName

private java.lang.String jndiName

expectedType

private java.lang.Class<?> expectedType
Constructor Detail

JndiObjectLocator

public JndiObjectLocator()
Method Detail

setJndiName

public void setJndiName(java.lang.String jndiName)
Specify the JNDI name to look up. If it doesn't begin with "java:comp/env/" this prefix is added automatically if "resourceRef" is set to "true".

Parameters:
jndiName - the JNDI name to look up
See Also:
JndiLocatorSupport.setResourceRef(boolean)

getJndiName

public java.lang.String getJndiName()
Return the JNDI name to look up.


setExpectedType

public void setExpectedType(java.lang.Class<?> expectedType)
Specify the type that the located JNDI object is supposed to be assignable to, if any.


getExpectedType

public java.lang.Class<?> getExpectedType()
Return the type that the located JNDI object is supposed to be assignable to, if any.


afterPropertiesSet

public void afterPropertiesSet()
                        throws java.lang.IllegalArgumentException,
                               javax.naming.NamingException
Description copied from interface: InitializingBean
Invoked by a BeanFactory after it has set all bean properties supplied (and satisfied BeanFactoryAware and ApplicationContextAware).

This method allows the bean instance to perform initialization only possible when all bean properties have been set and to throw an exception in the event of misconfiguration.

Specified by:
afterPropertiesSet in interface InitializingBean
Throws:
java.lang.IllegalArgumentException
javax.naming.NamingException

lookup

protected java.lang.Object lookup()
                           throws javax.naming.NamingException
Perform the actual JNDI lookup for this locator's target resource.

Returns:
the located target object
Throws:
javax.naming.NamingException - if the JNDI lookup failed or if the located JNDI object is not assigable to the expected type
See Also:
setJndiName(java.lang.String), setExpectedType(java.lang.Class), JndiLocatorSupport.lookup(String, Class)