first commit
This commit is contained in:
83
hrmsEjb/wenrgise/common/utility/ServiceLocator.java
Normal file
83
hrmsEjb/wenrgise/common/utility/ServiceLocator.java
Normal file
@@ -0,0 +1,83 @@
|
||||
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;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user