首页 | 注册 | 登陆
首页 >> 技术专栏 >> java文章 >> java高级 

eblgic中介绍的一个jsp调用ejb的好例子,相当详细。


作者j2ee,ejb 来源j2ee,ejb 加入时间:2006年04月17日
摘要:
eblgic中介绍的一个jsp调用ejb的好例子,相当详细。

<!-- Copyright (c) 1999-2000 by BEA Systems, Inc. All Rights Reserved.-->

<!-- Here we use a Java string ("PAGETITLE") to set
     the same ph…

转载:转载请保留本信息,本文来自
http://www.51dibs.com
/html/2006/article/info19/a_17e9068ab782ece8.htm




eblgic中介绍的一个jsp调用ejb的好例子,相当详细。


站点:爱心种子小博士 关键字:eblgic中介绍的一个jsp调用ejb




eblgic中介绍的一个jsp调用ejb的好例子,相当详细。
<!-- Copyright (c) 1999-2000 by BEA Systems, Inc. All Rights Reserved.-->

<!-- Here we use a Java string ("PAGETITLE") to set
     the same phrase as the title and as a head.-->
<html>
<head>
<title>
<%= pagetitle %>
</title>
</head>

<body bgcolor=#FFFFFF>

<font face="Helvetica">

<h2>
<font color=#DB1260>
<%= pagetitle %>
</font>
</h2>

<!-- Using the "import" feature -->

<%@ page import="
    javax.naming.*,
    javax.ejb.*,
    java.rmi.RemoteException,
    java.rmi.Remote,
    java.util.*,
    examples.ejb.basic.beanManaged.*
"%>

<!-- Here, we declare a class method -->

<%!
  String pagetitle = "JSP example using EJBean-managed persistence";
  String url       = "t3://localhost:7001";
  String accountId = "10020";

  // Declaring a Java class
  public Context getInitialContext() throws Exception {
    Properties p = new Properties();
    p.put(Context.INITIAL_CONTEXT_FACTORY,
          "weblogic.jndi.WLInitialContextFactory");
    p.put(Context.PROVIDER_URL, url);
    return new InitialContext(p);
  }
    
  String getStackTraceAsString(Exception e)
  {
    // Dump the stack trace to a buffered stream, then send its contents
    // to the JSPWriter.
    ByteArrayOutputStream ostr = new ByteArrayOutputStream();
    e.printStackTrace(new PrintWriter(ostr));
    return(ostr.toString());
  }
%>

<!-- Note that the following Java code will be inserted into the body
of the servlet -->

<%
  double amount  = 100;
  double balance = 3000;

  AccountPK accountKey = new AccountPK();
  accountKey.accountId = accountId;
  try {
    // Contact the AccountBean container (the "AccountHome") through JNDI.

    Context ctx = getInitialContext();
    AccountHome home = (AccountHome) ctx.lookup("beanManaged.AccountHome");

%>

<p>
<b>Looking up account <%= accountId %> ...</b>

<%
    Account ac = null;
    try {
      ac = (Account) home.findByPrimaryKey(accountKey);
    }
    catch (Exception ee) {
        out.println("<br>Did not find "+ accountId);
    }

    if (ac == null) {
      out.print("<br>Account " + accountId +
                " being created; opening balance is $" + balance);
      ac = home.create(accountId, balance);      
    }
    else {
      out.print("<br>Account " + accountId +
                " found; balance is $" + ac.balance());
    }
%>

<h2>Part A:</h2>
Deposit and attempt to withdraw more than the current
account balance. An application-specific exception should be thrown:-
<p>

Current Balance: $ <%= ac.balance() %> <br>
Depositing: $ <%= amount %>
<p>

<%
    // Deposit the amount into the account
    balance = ac.deposit(amount);
%>

New balance: $ <%= balance %>

<p>
<h2>PartB:</h2>
Withdraw an amount greater than
current balance. Expecting an exception...
<p>

<%
    amount = balance + 10;
    try {
      balance = ac.withdraw(amount);
      out.print("Error: An exception should have been thrown.");
    }
    catch (ProcessingErrorException pe) {
      out.print("Received expected Processing Error:" + pe);
      out.print("<pre>" + getStackTraceAsString(pe) + "</pre>");
    }
%>      

<h2>Part C</h2>
Create some new accounts, with different initial balances.
Find all the accounts with a balance greater than a specific value.
When finished, the new accounts are removed.
<p>

<%
    int numAccounts = 5;
    long now = System.currentTimeMillis();
    Vector v = new Vector();
    
    for (int i = 0; i < numAccounts; i++) {
      String id = "" + now + i;     // create unique account  id
      balance = i*100;              // initial balance
      v.addElement(home.create(id, balance));
%>

<br>Created account: <%= id %> with  balance: $ <%= balance %>

<%
    } // end of creating accounts for loop

    if (v.size() == numAccounts) {
      out.print("<p>Success: " + numAccounts + " accounts successfully created");
    }
    else {
      out.print("<p>Error: Only " + v.size() +
                " accounts were created successfully");
    }
    
%>

<%
    double balanceGreaterThan = 700;
%>

<p>Querying for accounts with a balance greater than <%= balanceGreaterThan %>
<table><tr><th Account ID><th Balance></tr>

<%
    Enumeration e = home.findBigAccounts(balanceGreaterThan);
    if (e != null) {
      while (e.hasMoreElements()) {
        Account bigAccount= (Account) e.nextElement();
%>
<tr>
    <td><%= bigAccount.getPrimaryKey() %></td>
    <td><%= bigAccount.balance() %></td>
</tr>
<%
        // Thread.sleep(1000);
      }
    }
%>
</table>

<p>Now Removing the accounts we just created...

<%
    for (int i = 0; i < numAccounts; i++) {
      String id = String.valueOf(now) + String.valueOf(i);
      ((Account)(v.elementAt(i))).remove();
      out.print("<br>Removed account: " +id);
    }

  // Catch exceptions
  }
  catch (ProcessingErrorException pe) {
    out.print("<p>Unexpected Processing Error: " + pe +
              "<pre>"+getStackTraceAsString(pe)+"</pre>");
  }
  catch (Exception e) {
    out.print("<p>:::::::::::::: Unexpected Error :::::::::::::::::");
    out.print("<pre>"+getStackTraceAsString(e)+"</pre>");
  }
  finally {
%>

<p>Completed EJB operations at <%= new Date() %>
<p><hr width=80%>

<%
  }
%>

<p>
<font size=-1>
Copyright © 1999-2000 by BEA Systems, Inc. All Rights Reserved.
</font>

</font>
</body>
</html>





发布人:j2ee,ejb
→ 推荐给我的好友 → 报告错误链接
上篇文章:gic6.0使用心得
下篇文章:T+IIS配置方法
〖文章打印〗
〖关闭窗口〗
发表评论
查看评论
中“eblgic中介绍的一个jsp调用ejb的好例子,相当详细。”相关内容 中“eblgic中介绍的一个jsp调用ejb的好例子,相当详细。”相关内容
中“eblgic中介绍的一个jsp调用ejb的好例子,相当详细。”相关内容 中“eblgic中介绍的一个jsp调用ejb的好例子,相当详细。”相关内容
中“eblgic中介绍的一个jsp调用ejb的好例子,相当详细。”相关内容 中“eblgic中介绍的一个jsp调用ejb的好例子,相当详细。”相关内容

关于我们网站留言友情链接与我在线与我聊天领取红包管理TOP