您现在的位置: 中国教师站 >> 教师关注 >> 电脑技术 >> 编程技术 >> Java >> 正文

Google
win2k环境下基于JBOSS的J2EE开发实践----之四:BMP实体
作者:Siny 文章来源:中国教师站cn-teacher 点击数: 更新时间:2007-4-22 13:23:21
n{
Account account = null;
InitialContext ctx = null;
try{
Properties env = new Properties();
//config.properties文件应该放在和hello包目录所在目录的同级目录中。即它
//和hello文件夹同在一个文件夹中。
env.load(new FileInputStream("config.properties"));
// Get a naming context
System.out.println(env);
ctx = new javax.naming.InitialContext(env);
System.out.println("Got context");
// Get a reference to the Interest Bean
//jboss默认jndi名为jboss-service.xml中的:jndi-name
Object ref = ctx.lookup("Account");
System.out.println("Got reference");
AccountHome accountHome =
(AccountHome)PortableRemoteObject.narrow(ref,account.ejb.AccountHome.class);
//创建EJB对象
accountHome.create("987-654-321","abner chai",2000);
account = accountHome.create("123-456-7890","John Smith",100);
System.out.println("Total of accounts in bank is :"+accountHome.getTotalBankValue());
Iterator i = accountHome.findByOwnerName("John Smith").iterator();
if(i.hasNext()){
account = (Account)javax.rmi.PortableRemoteObject.narrow(i.next(),Account.class);
}else{
throw new Exception("Could not find account");
}
System.out.println("Initial Balance = "+account.getBalance());
account.storeinto(100);
System.out.println("After storeinto 100,account balance = "+account.getBalance());
AccountPK pk = (AccountPK)account.getPrimaryKey();
//释放旧的对象引用,用ID来查
account = null;
account = accountHome.findByPrimaryKey(pk);
//取出50元
account.getout(50);
System.out.println("after get out 50,account balance = "+account.getBalance());
//再取出200元
System.out.println("now get out 200");
//它应该抛出异常,因为钱己不够了。
account.getout(200);
}catch(Exception e){
System.out.println("caught Exception"++e.toString());
}finally{
//删除实体Bean
System.out.println("delete Account Bean");
try{
if(account!=null){
account.remove();
}
}catch(Exception e){
e.printStackTrace();
}
}
}//end main
}//end class


下面编译和布署客户端程序,进入src目录,运行:


com *.java,编译成功!


布署客户端,将编译后产生的Account.class、AccountClient.class、AccountException.class、AccountHome.class、AccountPK.class几个文件拷贝到:

C:JBOSSmyprojectAccountBMPejbclientaccountejb目录,然后再在client目录下新建一个config.properties文件,内容如下:

java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming.client
java.naming.provider.url=jnp://10.0.0.18:1099


它描述了jndi入口信息。
运行测试客户端,进入DOS方式,进入client目录,运行:
runclient account/ejb/AccountClient,程序输出如下图2,表示运行成功!
(注意:runclient是我们在本系列教程中第一节中编写的运行RMI-IIOP客户端的批处理程序)


图2


四、总结


在本节中,我们给大家展示了如何编写BMP实体BEAN,由于BEAN实体Bean在编写的过程中,我们Bean开发者需要实现大部分容器调用的方法,所以编写很麻烦,但同时,在编写的过程中,我们也明白了BMP实体Bean 的工作原理,为我们下一节学习CMP实体Bean打下了坚实的基础。


作者简介:abnerchai,高级程序员,西南交通大学计算机与通信工程学院计算机应用专业2002级在读硕士研究生,研究方向为:网络安全、工作流、项目管理及j2ee/ejb中间件技术。熟悉Java和C++编程,目前在四川成都美森软件系统有限公司做java程序员。你可以通过josserchai@yahoo.com和我联系。

上一页  [1] [2] [3] [4] [5] [6] 

相关专题:
 
 网友评论:(评论内容只代表网友观点,与本站立场无关!)
GOOGLE广告

阅读排行

| 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 |
中国教师站

中国教师站 版权所有 Copyright © 2006-2020 All Rights Reserved 站长:Sina & Siny
[备用域名:www.JXZYW.Com] 有事请留言有事请留言
【实力成就精品 诚信呵护品牌】

信息产业部备案
苏ICP备06018635号