动网论坛,站长建站首选,国内使用量最多的论坛软件 动网论坛官方技术讨论区 站长工具 申请属于您自己的免费论坛
首页 | 新闻资讯 | 网站运营 | 网络编程 | 数据库 | 服务器 | 网页设计 | 图像媒体 | 网络应用 | 搜索优化 | 资源下载 | 动网主机 | DVBOX
    本站内  互联网 ASP论坛  ASP.Net论坛  PHP论坛
   Jsp → 阅读文章

 代码人生学习品之EJB入门篇(三)

作者来源: 
阅读 1263 人次 , 2006-4-19 1:37:00 

  
  在上一讲,我们将EJB通过Application Deployment Tool发布进了J2EE服务器中去。我想大家十分想使用一个客户端的程序来调用它。好,我们这一讲就来讲讲客户端程序的编 写。

  首先,我们先理一下思路。如果要使用服务器上的EJB哪么首先我们要得到一个Home接口,而这个接口需要你通过JNDI来得到,哪么JNDI是通过什么来找Home接口呢?哪就是我们在上一讲中所提到的在Application Deploying Tools里最后一步定义的JNDI name。再来理一下,首先,我们通过JNDI name利用JNDI来得到一个Home接口。再通过这个Home接口中的creat方法来得到一个Bean的实例化对象。以下为这段程序的代码:

  我们新建一EJBClient的工程,在这个工程中我们加入一ConverterClient.java文件,同时在工程中加入J2EE的lib引用,并且更增加一个lib,这个lib指向我们在上一讲中使用Application Deployment Tool生成的ConverterAppClient.jar文件。这里包括了EJB在客户端所使用的库文件。以下是ConverterClient.java文件代码:

ConverterClient.java

/**

  * Title: EJB Client Test Project$#@60;p$#@62;

  * Description: $#@60;p$#@62;

  * Copyright: Copyright (c) HD$#@60;p$#@62;

  * Company: China Code$#@60;p$#@62;

  * @author HD

  * @version 1.0

*/

package ejbclient;



import javax.naming.Context;

import javax.naming.InitialContext;

import javax.rmi.PortableRemoteObject;

//引用了EJB及EJB在Home的接口

import ejbtest.Converter;

import ejbtest.ConverterHome;



public class ConverterClient {



public static void main(String[] args) {

  try {

   //创建一个JNDI naming contest

   Context initial = new InitialContext();

   //从JNDI中以MyConverter名子来定位到对象(我们在发布时指定了这里能定位的JNDI的名称)

   Object objref = initial.lookup("MyConverter");

   //通过objref得到ConverterHome本地接口

   ConverterHome home =

     (ConverterHome)PortableRemoteObject.narrow(objref,

  ConverterHome.class);

   //再由Home接口的create方法来创建一个服务器上的EJB实例

   Converter currencyConverter = home.create();

   //调用EJB中的方法

   double amount = currencyConverter.dollarToYen(100.00);

   System.out.println(String.valueOf(amount));

   amount = currencyConverter.yenToEuro(100.00);

   System.out.println(String.valueOf(amount));



  } catch (Exception ex) {

  System.err.println("Caught an unexpected exception!");

  ex.printStackTrace();

   }

  }

}

  把这个java文件加入到在第一讲中我们建立的工程文件中去,让Jbuilder make工程一次。这样就会得到ConverterClient.class文件。在运行前我们要设置一下Jbuilder的工程,在Project-Project Properties…的Project Properties对话框中的Run Tab中设置Application的Main Class为ConverterClient。

  如果你得到java.lang.ClassCastException的意外。哪么你需要确定是否在Project的lib中加入了对ConverterAppClient.jar包的引用。另外你一定要确认你在工程中使用的JNDI name是否与你在程序中使用的名称一样。通常出现问题就在这点了。

  好,这里让你运行起来了第一个EJB的程序。实际上很简单,不是吗?我们会在下一讲中来讲讲EJB实施的原理。我在大多数的教程中都看到的是将理论放在最开始的地方,而我觉得先运行起一个实例更有利于大家的学习,更能有效的对EJB有一个深入的认识。我们在下一讲中来依照我们刚完成的实例理解一下EJB的部属和使用。



相关资源:

  有关本文章相关问题可以到news://news.chinacode.net 新闻组的CCU.Program.Java.EJB组中去讨论。同时你也可以在哪里找到本文章最新的版本。


转自 www.chinacode.net 中国代码联盟新闻组   
 
 收藏本文  打印本文  论坛讨论  关闭窗口
· 上一篇:JSP学习笔记(五)-----JSP中使用JavaBean
· 下一篇:JSP中字符替换函数str_replace()
· JSP概述
· 使用JSP+JAVABEAN+XML 开发的一个例子
· Tomcat 暴露JSP文件内容
· HTTP标准的请求和响应
· JSP由浅入深(7)—— JSP Directives


关于本站 | 联系我们 | 业务合作 | 客户案例 | 诚聘英才 | 广告合作 | 收藏本站
海口动网先锋网络科技有限公司版权所有
Copyright © 2000 - 2006 Cndw.Com
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077