В настоящее время я использую следующий код для поиска бездельной сессии EJB3 beans для обычного класса POJO. (Мы в JEE5, поэтому мы не можем вводить сессию без состояния beans в обычном классе POJO, я должен использовать поиск)
import javax.naming.Context;  
import javax.naming.InitialContext;  
import javax.naming.NamingException;  
import org.apache.log4j.Logger;  
public Object getEJB(String jndiName) {  
                logger.debug("WEBSPHERE EJB Lookup : " + jndiName);  
                String modifiedJndiName = "";  
                Hashtable<Object, Object> properties = new Hashtable<Object, Object>();  
                properties.put(Context.INITIAL_CONTEXT_FACTORY, "com.ibm.websphere.naming.WsnInitialContextFactory");  
                properties.put(Context.PROVIDER_URL, "iiop://localhost:2809");  
                try {  
                    Context context = new InitialContext(properties);  
                    logger.debug("WEBSPHERE EJB Lookup Modified JNDI Name: " + modifiedJndiName);  
                    return context.lookup("ejblocal:"+modifiedJndiName);  
                }catch (NamingException ne) {  
                    logger.debug("Naming Exception occurred :"+jndiName +">>>"+ne.getMessage());  
                    logger.error(ne.getMessage(), ne);  
                }  
                return null;  
            }  
Итак, объект Context - это ThredSafe? должен ли я создавать объект Контекста для каждого вызова [как показано в этом фрагменте кода] или я могу повторно использовать Контекст для всех потоков?