📄 ejbeanmanagedclient.jsp
字号:
<!-- Copyright (c) 1999-2002 by BEA Systems, Inc. All Rights Reserved.-->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;CHARSET=iso-8859-1">
<meta name="description" content="BEA WebLogic Server">
<meta name="keywords" content="BEA WebLogic Server">
<title>EJBean 2.0 Bean-managed Persistence JSP</title>
<LINK REL="stylesheet"
TYPE="text/css"
HREF="wls_examples.css"
TITLE="BEA WebLogic Server">
</head>
<body bgcolor="#ffffff" link="#3366cc" vlink="#9999cc" alink="#0000cc">
<!-- top intro paragraph tables -->
<!-- RED LINE -->
<table cellspacing="0" cellpadding="0" border="0" width="100%">
<tr>
<td width="100%" bgcolor="#ff0000" height="1">
<p class="small"> </p>
</td>
</tr>
</table>
<table border=0 cellspacing="18" cellpadding="0">
<tr>
<td valign="top">
<a HREF="http://www.bea.com"><IMG SRC="images/logo_tm_onwt.jpg" alt="BEA Logo" border="0"></a>
<h3><%= pagetitle %></h3>
</td>
</tr>
</table>
<!-- Using the "import" feature -->
<%@ page import="
javax.naming.*,
javax.ejb.*,
java.rmi.RemoteException,
java.rmi.Remote,
java.util.*,
examples.ejb20.basic.beanManaged.*
"%>
<!-- Here, we declare a class method -->
<%!
String pagetitle = "JSP example using EJBean-managed persistence";
String accountId = "10020";
// Declaring a Java class
public Context getInitialContext(String url) 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 it's 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 -->
<%
String url = "http://" + request.getServerName() + ":" + request.getServerPort();
double amount = 100;
double balance = 3000;
try {
// Contact the AccountBean container (the "AccountHome") through JNDI.
Context ctx = getInitialContext(url);
AccountHome home = (AccountHome) ctx.lookup("ejb20-beanManaged-AccountHome");
%>
<!-- RED LINE -->
<table cellspacing="0" cellpadding="0" border="0" width="100%">
<tr>
<td width="100%" bgcolor="#ff0000" height="1">
<p class="small"> </p>
</td>
</tr>
</table>
<table border=0 cellspacing="18" cellpadding="0">
<tr>
<td valign="top">
<p>
<b>Looking up account <%= accountId %> ...</b>
<%
Account ac = null;
try {
ac = (Account) home.findByPrimaryKey(accountId);
}
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());
}
%>
<h3>Part A:</h3>
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>
<h3>PartB:</h3>
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.getMessage());
}
%>
<h3>Part C</h3>
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>
<%
Collection col = home.findBigAccounts(balanceGreaterThan);
if (col != null) {
Iterator iter = col.iterator();
while (iter.hasNext()) {
Account bigAccount= (Account) iter.next();
%>
<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.getMessage());
}
catch (Exception e) {
out.print("<p>:::::::::::::: Unexpected Error :::::::::::::::::");
out.print("<pre>"+getStackTraceAsString(e)+"</pre>");
}
finally {
%>
<p>Completed EJB operations at <%= new Date() %>
<p>
<%
}
%>
</td>
</tr>
</table>
<br>
<!-- RED LINE -->
<table cellspacing="0" cellpadding="0" border="0" width="100%">
<tr>
<td width="100%" bgcolor="#ff0000" height="1">
<p class="small"> </p>
</td>
</tr>
</table>
<!-- FOOTER -->
<table cellspacing="0" cellpadding="0" border="0" width="100%">
<tr>
<td align="left">
<p class="copyright">Last updated: March 2002</p>
</td>
</tr>
</table>
<table cellspacing="0" cellpadding="0" border="0" width="100%"><!-- RED LINE -->
<tr>
<td width="100%" bgcolor="#ff0000" height="1">
<p class="small"> </p>
</td>
</tr>
</table>
<p class="copyright"><a href="http://www.bea.com">Home</a> |
<a href="http://www.bea.com/about/index.html" target="_top">Corporate Info</a> |
<a href="http://www.bea.com/press/index.html" target="_top">News</a> |
<a href="http://www.bea.com/solutions/index.html" target="_top">Solutions</a> |
<a href="http://www.bea.com/products/index.html" target="_top">Products</a> |
<a href="http://www.bea.com/partners/index.html" target="_top">Partners</a> |
<a href="http://www.bea.com/services.html" target="_top">Services</a> |
<a href="http://www.bea.com/events/index.html" target="_top">Events</a> |
<a href="http://www.bea.com/download.html" target="_top">Download</a> |
<a href="http://www.bea.com/purchase.html" target="_top">How to Buy</a>
<br>Copyright 2002, BEA Systems, Inc. All rights reserved.
<br>Required browser: Netscape 4.0 or higher, or Microsoft Internet Explorer 4.0 or higher.
<br> <a href="http://www.bea.com/contact/index.html" target="_top">Contact BEA</a>
</p>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -