Hi -

We are trying to use JCS in a servlet environment w/ a non-default configuration file name. We consistently get this error:

======================================================================== ==== Sep 7, 2006 9:35:26 AM org.apache.jcs.engine.control.CompositeCacheManager configure
SEVERE: Failed to load properties for name [/oracle_map_cache.ccf]
======================================================================== ====

I believe the problem is on line 206 of org.apache.jcs.engine.control.CompositeCacheManager :

======================================================================== ====
206   InputStream is = getClass().getResourceAsStream( propFile );
======================================================================== ====

This probably works in most environments, but in a servlet environment, the classloaders are a bit odd and its possible that the classloader that loaded the JCS classes cannot see the location of the config file (it may have been loaded by a different class loader). Instead, I think that line should be changed to:

======================================================================== ==== InputStream is = Thread.currentThread().getContextClassLoader ().getResourceAsStream( propFile ); ======================================================================== ====

...which should work in all environments (I think). The existing class.getResource() method loads from the same classloader that loaded the JCS classes, whereas the context.getResource() loads from the context classloader. Often those are the same loaders, but not always. I suppose that the safest thing to do would be to have the config try to load from the context loader, then failover to the current loader.

There is an article relating to this at: http://www.javaworld.com/ javaworld/javaqa/2003-06/01-qa-0606-load.html

From the article, it seems to me that this could also be a mild error in how classloaders are setup in my environment (I'm using Oracle's OC4J), but the article does differentiate b/t the various types of loaders.

Thanks -

Eric Everman


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to