RequestResearch.java
资源名称:某公司的java培训教材 [点击查看]
上传用户:dinglihq
上传日期:2013-02-04
资源大小:99958k
文件大小:5k
源码类别:
Java编程
开发平台:
Java
- package bible.ejb.session.example1;
- import java.rmi.*;
- import javax.ejb.*;
- import java.util.*;
- import javax.naming.*;
- /**
- * Class RequestResearch
- *
- *
- * @author
- * @version %I%, %G%
- */
- public class RequestResearch implements SessionBean {
- // Implemented create method required by RequestResearchHome.
- /**
- * Method ejbCreate
- *
- *
- */
- public void ejbCreate() {}
- // Implemented methods required by SessionBean.
- private SessionContext sessionContext;
- /**
- * Method ejbRemove
- *
- *
- * @throws RemoteException
- *
- */
- public void ejbRemove() throws RemoteException {}
- /**
- * Method ejbActivate
- *
- *
- * @throws RemoteException
- *
- */
- public void ejbActivate() throws RemoteException {}
- /**
- * Method ejbPassivate
- *
- *
- * @throws RemoteException
- *
- */
- public void ejbPassivate() throws RemoteException {}
- /**
- * Method setSessionContext
- *
- *
- * @param sessionContext
- *
- * @throws RemoteException
- *
- */
- public void setSessionContext(SessionContext sessionContext)
- throws RemoteException {
- this.sessionContext = sessionContext;
- }
- // Methods for processing requests for research as required
- // for the RequestResearchRemote interface.
- /**
- * Fetches and returns research for a security.
- */
- public String requestResearch(String symbol) throws RemoteException {
- // CheckEnvironment flag here to see whether to route the call to the
- // internal system.
- String research = null;
- if (this.useRequestDataManager()) {
- System.out.println("Locally calling RequestDataManager for research.");
- research = getResearchFromDataManager(symbol);
- } else {
- System.out.println("Randomly generating research for this symbol.");
- research = createRandomResearch(symbol);
- }
- return research;
- }
- /**
- * Randomly creates 'research' for this security.
- */
- private String createRandomResearch(String symbol) {
- Random rand = new Random();
- int x = rand.nextInt();
- x = x % 3;
- String research = null;
- switch (x) {
- case 0 :
- research = "Zeetrade recommends you buy " + symbol;
- break;
- case 1 :
- research = "Zeetrade recommends you hold " + symbol;
- break;
- default :
- research = "Zeetrade recommends you sell " + symbol;
- break;
- }
- return research;
- }
- /**
- * Does an environment entry lookup to determine where or not to use
- * the DataManager or randomly generate data here. This field can be edited in
- * the ejb-jar.xml before EJB deployment.
- */
- private boolean useRequestDataManager() {
- System.out.println("Checking the env-entry for useRequestDataManager");
- InitialContext ctx = null;
- boolean useManager = false;
- try {
- // Because Request Research is a bean living in the EJB container,
- // no need to specify server parameters to obtain the correct context.
- ctx = new InitialContext();
- Boolean useManagerBool =
- (Boolean) ctx.lookup("java:comp/env/useRequestDataManager");
- useManager = useManagerBool.booleanValue();
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- try {
- ctx.close();
- } catch (Exception e) {}
- }
- return useManager;
- }
- /**
- * Calls local EJB RequestDataManager to get research.
- */
- private String getResearchFromDataManager(String symbol) {
- InitialContext ctx = null;
- StringBuffer sb = new StringBuffer();
- try {
- // Because Request Research is a bean living in the EJB container,
- // no need to specify server parameters to obtain the correct context.
- ctx = new InitialContext();
- Object objref = ctx.lookup("RequestDataManager");
- // No need to do narrow, simply cast as this is a local object to this JVM.
- RequestDataManagerLocalHome home =
- (RequestDataManagerLocalHome) objref;
- RequestDataManagerLocal dataBean = home.create();
- sb.append("**Data Retreived from the local datasource**");
- // Call the dataBean, this is not pass by value as in RMI (Remote
- // beans included) Instead the stringbuffer is passed by reference,
- // and therefore when the local session EJB RequestDataManager
- // appends to it, the appends are altering this buffer (sb).
- dataBean.appendResearchData(sb, symbol);
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- try {
- ctx.close();
- } catch (Exception e) {}
- }
- return sb.toString();
- }
- }
- /*--- Formatted in Bible Style on Thu, Sep 6, '01 ---*/
- /*------ Formatted by Jindent 3.24 Gold 1.02 --- http://www.jindent.de ------*/