84 lines
2.6 KiB
Java
84 lines
2.6 KiB
Java
package wenrgise.common.utility;
|
|
|
|
import java.util.HashMap;
|
|
import javax.ejb.EJBLocalHome;
|
|
import javax.naming.Context;
|
|
import javax.naming.NamingException;
|
|
import wenrgise.common.exception.EnrgiseSystemException;
|
|
|
|
public class ServiceLocator {
|
|
private HashMap homeCache;
|
|
|
|
private final HashMap cacheMap = new HashMap();
|
|
|
|
private static ServiceLocator serviceLocator = new ServiceLocator();
|
|
|
|
private ServiceLocator() {
|
|
try {
|
|
this.homeCache = new HashMap();
|
|
} catch (Throwable e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
public static ServiceLocator getLocator() {
|
|
return serviceLocator;
|
|
}
|
|
|
|
public Object getService(String jndiName) throws EnrgiseSystemException {
|
|
try {
|
|
if (!this.homeCache.containsKey(jndiName.trim())) {
|
|
Context context = ContextProvider.getContext();
|
|
this.homeCache.put(jndiName.trim(), context.lookup(jndiName.trim()));
|
|
}
|
|
} catch (NamingException oNa) {
|
|
oNa.printStackTrace();
|
|
System.out.println(oNa.getExplanation());
|
|
throw new EnrgiseSystemException(oNa);
|
|
} catch (Exception oEx) {
|
|
oEx.printStackTrace();
|
|
throw new EnrgiseSystemException(oEx);
|
|
}
|
|
return this.homeCache.get(jndiName.trim());
|
|
}
|
|
|
|
public Object getLocalService(String jndiHomeName) throws EnrgiseSystemException {
|
|
Object obj = null;
|
|
try {
|
|
Context context = ContextProvider.getLocalContext();
|
|
if (this.cacheMap.containsKey(jndiHomeName)) {
|
|
obj = this.cacheMap.get(jndiHomeName);
|
|
} else {
|
|
obj = context.lookup(jndiHomeName);
|
|
this.cacheMap.put(jndiHomeName, obj);
|
|
}
|
|
} catch (NamingException ne) {
|
|
ne.printStackTrace();
|
|
throw new EnrgiseSystemException(ne);
|
|
}
|
|
return obj;
|
|
}
|
|
|
|
public EJBLocalHome getLocalHome(String jndiHomeName) throws EnrgiseSystemException {
|
|
System.out.println(String.valueOf("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX").concat(String.valueOf(jndiHomeName)));
|
|
EJBLocalHome home = null;
|
|
try {
|
|
Context context = ContextProvider.getLocalContext();
|
|
if (this.cacheMap.containsKey(jndiHomeName)) {
|
|
home = (EJBLocalHome)this.cacheMap.get(jndiHomeName);
|
|
} else {
|
|
home = (EJBLocalHome)context.lookup(String.valueOf("java:comp/env/").concat(String.valueOf(jndiHomeName)));
|
|
this.cacheMap.put(jndiHomeName, home);
|
|
}
|
|
} catch (NamingException ne) {
|
|
System.out.println(ne);
|
|
ne.printStackTrace();
|
|
throw new EnrgiseSystemException(ne);
|
|
} catch (Exception oEx) {
|
|
oEx.printStackTrace();
|
|
throw new EnrgiseSystemException(oEx);
|
|
}
|
|
return home;
|
|
}
|
|
}
|