⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rithtejbdelegate.java

📁 Java开发的权限管理的例子
💻 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 + -