package com.eb.module.user.web;
import java.io.ObjectOutputStream;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Hashtable;
import javax.ejb.Handle;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.rmi.PortableRemoteObject;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
import com.eb.common.AbstractAction;
import com.eb.common.AbstractActionForm;
import com.eb.common.AbstractVO;
import com.eb.common.DC;
import com.eb.common.InitEnvironment;
import com.eb.module.user.ejb.User;
import com.eb.module.user.ejb.UserHome;
import com.eb.module.user.vo.UserVO;
public class UserAction extends AbstractAction{
private String login_ok ="login_ok";
private String login_request="loginRequest";
private Logger logger = Logger.getLogger(UserAction.class);
public String doLoginRequest(AbstractActionForm actionForm,HttpServletRequest request,
HttpServletResponse response){
logger.debug("....... begin to execute method doLoginRequest");
return login_request;
}
public String doLogin(AbstractActionForm actionForm,HttpServletRequest request,
HttpServletResponse response,DC dc) throws Exception{
logger.debug("..........begin to execute method doLogin()");
logger.debug("forward page is:"+login_ok);
UserVO vo = (UserVO)Form2VO(actionForm);
dc.requestList = new ArrayList();
dc.requestList.add(vo);
dc.setEJB_METHOD("doLogin");
dc.setJNDI_NAME(UserHome.JNDI_NAME);
dc = callEJB(dc);
logger.debug("dc.responseList.size() :"+dc.responseList.size());
vo = (UserVO)dc.responseList.get(0);
logger.debug("....."+vo.getId());
logger.debug("....."+vo.getCode());
logger.debug("....."+vo.getName());
logger.debug("....."+vo.getPassword());
logger.debug("....."+vo.getRegisterDate());
return login_ok;
}
protected AbstractVO Form2VO(AbstractActionForm actionForm) throws Exception{
UserVO vo = new UserVO();
UserActionForm form = (UserActionForm)actionForm;
vo.setId(form.getId());
vo.setCode(form.getCode());
vo.setName(form.getName());
vo.setPassword(form.getPassword());
vo.setRegisterDate(form.getRegisterDate());
return vo;
}
protected DC callEJB(DC dc) throws Exception{
logger.debug("....begin callEJB...");
UserHome home = (UserHome)PortableRemoteObject.narrow(InitEnvironment.getJNDIObject(dc),UserHome.class);
User user = home.create();
Method method = user.getClass().getMethod(dc.getEJB_METHOD(),new Class[]{DC.class});
logger.debug("....begin invoke....");
dc = (DC)method.invoke(user,new Object[]{dc});
//
// Handle handle = user.getHandle();
// ObjectOutputStream stream = null;
// stream.writeObject(handle);
return dc;
}
protected AbstractActionForm VO2Form(AbstractVO abstractVO) throws Exception{
UserActionForm form = new UserActionForm();
UserVO vo = (UserVO)abstractVO;
form.setId(vo.getId());
form.setCode(vo.getName());
form.setName(vo.getName());
form.setPassword(vo.getPassword());
form.setRegisterDate(vo.getRegisterDate());
return form;
}
}