I'm using the ServiceLocator pattern with caching to avoid retrieving new EJB references from JNDI pool per request. Basically, on first lookup the EJB remote interface is cached and next lookup returns that cached reference.

I was wondering if there is any inherent disadvantages to this? Would having only one interface kill performance when multiple clients demand service?