If Tomcat is unable to identify the appropriate resource factory and/or
additional configuration information is required, additional Tomcat specific
configuration must be specified before Tomcat can create the resource.
Tomcat specific resource configuration is entered in
the <Context>
elements that
can be specified in either $CATALINA_BASE/conf/server.xml
or,
preferably, the per-web-application context XML file
(META-INF/context.xml
).
Tomcat specific resource configuration is performed using the following
elements in the <Context>
element:
- <Environment> -
Configure names and values for scalar environment entries that will be
exposed to the web application through the JNDI
InitialContext
(equivalent to the inclusion of an
<env-entry>
element in the web application
deployment descriptor).
- <Resource> -
Configure the name and data type of a resource made available to the
application (equivalent to the inclusion of a
<resource-ref>
element in the web application
deployment descriptor).
- <ResourceLink> -
Add a link to a resource defined in the global JNDI context. Use resource
links to give a web application access to a resource defined in
the <GlobalNamingResources>
child element of the <Server>
element.
- <Transaction> -
Add a resource factory for instantiating the UserTransaction object
instance that is available at
java:comp/UserTransaction
.
Any number of these elements may be nested inside a
<Context>
element and will
be associated only with that particular web application.
If a resource has been defined in a
<Context>
element it is not
necessary for that resource to be defined in /WEB-INF/web.xml
.
However, it is recommended to keep the entry in /WEB-INF/web.xml
to document the resource requirements for the web application.
Where the same resource name has been defined for a
<env-entry>
element included in the web application
deployment descriptor (/WEB-INF/web.xml
) and in an
<Environment>
element as part of the
<Context>
element for the
web application, the values in the deployment descriptor will take precedence
only if allowed by the corresponding
<Environment>
element (by setting the override
attribute to "true").