帝国软件
  设为首页 加入收藏 关于我们
 
解密帝国网站管理系统
栏 目:
 
您的位置:首页 > 技术文档 > JAVA编程
weblgic中介绍的一个jsp调用ejb的好例子
作者:未知 发布时间:2005-03-12 来源:JSP天空网
作者:diego lynn

<!-- 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 it&acute;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 -->

<%
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 &copy; 1999-2000 by BEA Systems, Inc. All Rights Reserved.
</font>

</font>
</body>
</html>  
  
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·WebLogic的研究之--开发、部署  (2005-03-12)
 ·WebLogic的研究之--开发、部署  (2005-03-12)
 ·WebLogic的研究之--开发、部署  (2005-03-12)
 ·JBuilder7+Weblogic7+mysql 开发  (2005-03-12)

   栏目导行
  PHP编程
  ASP编程
  ASP.NET编程
  JAVA编程
   站点最新
·致合作伙伴的欢迎信
·媒体报道
·帝国软件合作伙伴计划协议
·DiscuzX2.5会员整合通行证发布
·帝国CMS 7.0版本功能建议收集
·帝国网站管理系统2012年授权购买说
·PHPWind8.7会员整合通行证发布
·[官方插件]帝国CMS-访问统计插件
·[官方插件]帝国CMS-sitemap插件
·[官方插件]帝国CMS内容页评论AJAX分
   类别最新
·谈谈JDBC
·JDBC专题介绍
·JDBC接口技术
·利用weblogic的POOL(连接池)连接
·Jsp中调用Oracle存储过程的小例子
·JSP数据库操作例程
·JSP数据库连接大全
·用连接池提高Servlet访问数据库的效
·一种简单JDBC连接池的实现
·数据库连接池Java实现小结
 
关于帝国 | 广告服务 | 联系我们 | 程序开发 | 网站地图 | 留言板 帝国网站管理系统