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

📄 traderbean.java

📁 weblogic应用全实例
💻 JAVA
字号:
//声明本接口所在的包
package examples.rmi_iiop.ejb.rmi_iiop;
//声明本类引入的其他类
import javax.ejb.CreateException;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;
import javax.naming.InitialContext;
import javax.naming.NamingException;

/**
 * TraderBean是一个无状态会话Bean。这个bean演示:
 * 
 * 在调用会话Bean之间,不记录会话的状态
 * 从环境中读取值
 * 
 */
public class TraderBean implements SessionBean {
  //是否打印运行提示
  private static final boolean VERBOSE = true;
  //声明会话上下文
  private SessionContext ctx;
  //声明交易极限
  private int tradeLimit;

  // 也可以考虑使用WebLogic的日志服务
  private void log(String s) {
    if (VERBOSE) System.out.println(s);
  } 
  
  /**
   * 这是SessionBean接口定义的方法,必须实现
   *
   */
  public void ejbActivate() {
    log("ejbActivate called");
  }

  /**
   * 这是SessionBean接口定义的方法,必须实现
   *
   */
  public void ejbRemove() {
    log("ejbRemove called");
  }

  /**
   * 这是SessionBean接口定义的方法,必须实现
   *
   */
  public void ejbPassivate() {
    log("ejbPassivate called");
  }

  /**
   * 设置会话上下文
   *
   * @参数 ctx               SessionContext 会话上下文
   */
  public void setSessionContext(SessionContext ctx) {
    log("setSessionContext called");
    this.ctx = ctx;
  }

  /**
   * 这个方法与接口"TraderHome.java"中的create方法相对应。
   * .
   * 当客户端调用TraderHome.create()方法时,容器分配一个EJBean的实例并调用ejbCreate()方法。
   *
   * @异常               javax.ejb.CreateException 如果发生通信或系统错误
   */
  public void ejbCreate () throws CreateException {
    log("ejbCreate called");

    try {
      //初始化上下文	
      InitialContext ic = new InitialContext();
      //从环境中读取参数值
      Integer tl = (Integer) ic.lookup("java:/comp/env/tradeLimit");
    
      tradeLimit = tl.intValue();
    } catch (NamingException ne) {
      throw new CreateException("Failed to find environment value "+ne);
    }
  }

  /**
   * 买进一定数量的股票.
   *
   * @参数 customerName      String 顾客名
   * @参数 stockSymbol       String 股票代码
   * @参数 shares            int 买进股票的数量
   * @返回                  TradeResult 交易结果
   */
  public TradeResult buy(String stockSymbol, int shares) {

    if (shares > tradeLimit) {
      log("Attempt to buy "+shares+" is greater than limit of "+tradeLimit);
      shares = tradeLimit;
    }

    log("Buying "+shares+" shares of "+stockSymbol);

    return new TradeResult(shares, stockSymbol);
  }

  /**
   * 卖出一定数量的股票
   *
   * @参数 customerName      String 顾客名
   * @参数 stockSymbol       String 股票代码
   * @参数 shares            int 卖出股票的数量
   * @返回                  TradeResult 交易结果
   */
  public TradeResult sell(String stockSymbol, int shares) {

    if (shares > tradeLimit) {
      log("Attempt to sell "+shares+" is greater than limit of "+tradeLimit);
      shares = tradeLimit;
    }

    log("Selling "+shares+" shares of "+stockSymbol);

    return new TradeResult(shares, stockSymbol);
  }

}








⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -