62 lines
2.2 KiB
Java
62 lines
2.2 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 WorkFlowServiceLocator {
|
|
private HashMap homeCache;
|
|
|
|
private final HashMap cacheMap = new HashMap();
|
|
|
|
private static WorkFlowServiceLocator serviceLocator = new WorkFlowServiceLocator();
|
|
|
|
private WorkFlowServiceLocator() {
|
|
try {
|
|
this.homeCache = new HashMap();
|
|
} catch (Throwable e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
public static WorkFlowServiceLocator getLocator() {
|
|
return serviceLocator;
|
|
}
|
|
|
|
public Object getService(String jndiName) throws EnrgiseSystemException {
|
|
try {
|
|
if (!this.homeCache.containsKey(jndiName)) {
|
|
Context context = WorkFlowContextProvider.getContext();
|
|
this.homeCache.put(jndiName, context.lookup(jndiName));
|
|
}
|
|
} catch (NamingException oNa) {
|
|
System.out.println(String.valueOf(String.valueOf(String.valueOf("The problem is ").concat(String.valueOf(oNa.getMessage()))).concat(String.valueOf(" the type is "))).concat(String.valueOf(oNa.getClass().getName())));
|
|
throw new EnrgiseSystemException(oNa);
|
|
} catch (Exception oEx) {
|
|
System.out.println(String.valueOf(String.valueOf(String.valueOf("The problem is ").concat(String.valueOf(oEx.getMessage()))).concat(String.valueOf(" the type is "))).concat(String.valueOf(oEx.getClass().getName())));
|
|
throw new EnrgiseSystemException(oEx);
|
|
}
|
|
return this.homeCache.get(jndiName);
|
|
}
|
|
|
|
public EJBLocalHome getLocalHome(String jndiHomeName) throws EnrgiseSystemException {
|
|
EJBLocalHome home = null;
|
|
try {
|
|
jndiHomeName = jndiHomeName.trim();
|
|
Context context = WorkFlowContextProvider.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) {
|
|
ne.printStackTrace();
|
|
throw new EnrgiseSystemException(ne);
|
|
}
|
|
return home;
|
|
}
|
|
}
|