You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Arshad Mahmood <ar...@compuvision.co.uk> on 2002/06/09 11:47:18 UTC
Help with JNDI Catalina 4 (May 30 build)
Hi,
I am trying to use JNDI to access some resources.I wonder if someone knows how to use the GlobalNamingResources.
Here is a snippet from my server.xml
<GlobalNamingResources>
<!-- the file based cache for all web applications -->
<Resource name="rohas/filecache" auth="Container" type="com.rohas.cache.FileCache" />
<ResourceParams name="rohas/filecache">
<parameter>
<name>factory</name>
<value>com.rohas.cache.FileCacheFactory</value>
</parameter>
<parameter>
<name>cacheDir</name>
<value>/tmp/cache</value>
</parameter>
</ResourceParams>
.....
I have then defined a link to this in my context as follows :-
<Context path="" docBase="www.compuvision.co.uk" debug="0" reloadable="true"
crossContext="false" cookies="true" >
<ResourceLink name="rohas/filecache" global="rohas/filecache"
type="com.rohas.cache.FileCache" />
....
The code to load the resource is defined as follows ::-
/* Get the file cache from the context via JNDI */
initCtx = new InitialContext();
envCtx = (Context)initCtx.lookup("java:comp/env");
/* retrieve the file cache */
fileCache = (FileCache)envCtx.lookup("rohas/filecache");
The resource is loaded as part of the startup for my servlet. When I start catalina I get the following error:-
javax.naming.NameNotFoundException: Name rohas is not bound in this Context
at org.apache.naming.NamingContext.lookup(Unknown Source)
at org.apache.naming.NamingContext.lookup(Unknown Source)
at com.rohas.util.MasterServlet.init(MasterServlet.java:76)
at javax.servlet.GenericServlet.init(GenericServlet.java:258)
at org.apache.catalina.core.StandardWrapper.loadServlet(Unknown Source)
at org.apache.catalina.core.StandardWrapper.load(Unknown Source)
at org.apache.catalina.core.StandardContext.loadOnStartup(Unknown Source)
at org.apache.catalina.core.StandardContext.start(Unknown Source)
One answer could be to define the resources in each context, but this is a pain as I am probably going to have about 6/7 contexts each of which use this shared resource.
Can anybody help ? Am I using the global resources in completely the wrong way ???
Regards,
Arshad