📄 rithtejbdelegate.java
字号:
package org.artemis.right;
import java.rmi.RemoteException;
import javax.ejb.CreateException;
import org.apache.log4j.Logger;
import com.gsta.eshore.framework.facade.BizFacadeHome;
import com.gsta.eshore.framework.facade.BizFacadeRemote;
import com.gsta.eshore.framework.facade.DelegateType;
import com.gsta.eshore.framework.facade.DelegateUtil;
import com.gsta.eshore.framework.jcf.IState;
import com.gsta.eshore.framework.jcf.Request;
import com.gsta.eshore.framework.jcf.Response;
import com.gsta.eshore.framework.servicerepository.ServiceLocator;
public class RithtEjbDelegate implements DelegateType
{
/**
* @author hewenqiang Jul 19, 2006 8:39:20 PM
*/
private static final long serialVersionUID = -3352641969938792969L;
private static Logger logger = Logger.getLogger(RithtEjbDelegate.class);
private static BizFacadeHome home;
private static boolean state = false;
public BizFacadeRemote getSessionFacade() throws RemoteException, CreateException
{
BizFacadeRemote sf = home.create();
return sf;
}
/**
* 初始化SessionFacade,获得Home接口,并调用EJBCreate,然后调用Session Bean的init()方法。
*/
public boolean init(String jndiName)
{
if (state) {
return state;
}
home = (BizFacadeHome) ServiceLocator.getInstance().getOne(jndiName);
state = true;
if (home == null) {
logger.error("Delegate get Home Interface fail,jndi = "+ jndiName);
state = false;
}
return state;
}
public boolean getState()
{
return state;
}
/**
* 调用服务器端服务。在只有一个请求参数和返回值的情况下使用。
*/
public Object execute(String paramName, Object paramValue,
String serviceName, String retParamName, IState state)
throws Exception {
logger.debug(serviceName + " called ");
Object retObj = null;
if (!DelegateUtil.isNullParam(paramValue, paramName, state)) {
Request req = new Request();
req.setValue(paramName, paramValue);
req.setServiceName(serviceName);
Response resp = this.execute(req);
DelegateUtil.setIState(state, resp);
retObj = resp.getValue(retParamName);
}
return retObj;
}
/**
* 调用服务器端服务。在不需要请求参数和只有一个返回参数的情况下使用。
*/
public Object execute(String serviceName, String retParamName,
IState state) throws Exception {
logger.debug(serviceName + " called ");
Object retObj = null;
Request req = new Request();
req.setServiceName(serviceName);
Response resp = this.execute(req);
DelegateUtil.setIState(state, resp);
retObj = resp.getValue(retParamName);
return retObj;
}
/**
* 调用服务器端服务。在只有一个请求参数和没有返回值的情况下使用。
*/
public void execute(String paramName, Object paramValue,String serviceName, IState state)
throws Exception {
logger.debug(serviceName + " called ");
if (!DelegateUtil.isNullParam(paramValue, paramName, state)) {
Request req = new Request();
req.setValue(paramName, paramValue);
req.setServiceName(serviceName);
Response resp = this.execute(req);
DelegateUtil.setIState(state, resp);
}
}
public Response execute(Request request) throws Exception{
return getSessionFacade().execute(request);
/* Response resp=null;
try {
BizFacadeRemote sf=this.getSessionFacade();
logger.debug("RithtEjbDelegate execute,执行SessionBean的execute方法: "+sf);
resp=sf.execute(request);
} catch (GoOnException goon) {
throw goon;
} catch (JCFException jcf) {
throw jcf;
}catch (Exception e) {
e.printStackTrace();
}
return resp;
*/
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -