I've just published an article in the IBM WebSphere Developer Technical Journal on developerWorks: "Eliminate caching in service locator implementations in J2EE 1.3: When bad things happen to good applications." It explains how shared resource names can become overloaded, and how the cache that is usually part of a Serice Locator implementation will not handle that overloading properly. The simplest solution? Take out the resource cache.
If you use the Service Locator pattern in your application, you should check out this article. If you don't use the Service Locator pattern, you should; then check out this article.