SignOnEJB.java
上传用户:dinglihq
上传日期:2013-02-04
资源大小:99958k
文件大小:2k
源码类别:

Java编程

开发平台:

Java

  1. package day21ex.signon;
  2. import java.util.*;
  3. import javax.ejb.*;
  4. import javax.naming.*;
  5. import day21ex.user.*;
  6. import day21ex.student.*;
  7. public class SignOnEJB implements SessionBean  {
  8.    private SessionContext ctx;
  9.    private HashSet cart;
  10.    InitialContext initCtx = null;
  11.    public SignOnEJB() {
  12.       print("The container created this instance.n");
  13.    }
  14.    public void setSessionContext(SessionContext ctx) {
  15.       print("The container called the setSessionContext method ");
  16.       print("to associate session bean instance with its context.n");
  17.       this.ctx = ctx;
  18.    }
  19.    public void ejbCreate() throws CreateException {
  20.       print("The container called the ejbCreate method.n");
  21.       cart = new HashSet();
  22.    }
  23.    public void ejbActivate() {
  24.       print("This instance has just been reactivated.n");
  25.    }
  26.    public void ejbPassivate() {
  27.       print("The container intends to passivate the instance.n");
  28.    }
  29.    public void ejbRemove() {
  30.       print("This instance is in the process of being removed ");
  31.       print("by the container.n");
  32.    }
  33.    public void addUser(String userName, String password){
  34.       try {
  35.          InitialContext ic = new InitialContext();
  36.          UserLocalHome ulh = (UserLocalHome) ic.lookup("day21ex/User");
  37.          UserLocal user = ulh.create(userName, password);
  38.       } catch (Exception e) {
  39.          throw new EJBException("Exception while adding user: " 
  40.                                     + e.getMessage());
  41.       }
  42.    }
  43.    public boolean validateUser(String userName, String password) 
  44.       throws InvalidLoginException {
  45.       try {
  46.          InitialContext ic = new InitialContext();
  47.          UserLocalHome ulh = (UserLocalHome) ic.lookup("day21ex/User");
  48.          UserLocal user = ulh.findByPrimaryKey(userName);
  49.          if (user == null) {
  50.             throw new InvalidLoginException("Invalid login");
  51.          }
  52.          return user.matchPassword(password);
  53.       } catch (FinderException fe) {
  54.          throw new InvalidLoginException("Invalid login");
  55.       } catch (NamingException ne) {
  56.          throw new EJBException("Naming exception:" + ne.getMessage());
  57.       }
  58.    }
  59.    
  60.    void print(String s) {
  61.       System.out.println("SignOnEJB:" + s);
  62.    }
  63. }