帝国软件
  设为首页 加入收藏 关于我们
 
解密帝国网站管理系统
栏 目:
 
您的位置:首页 > 技术文档 > JAVA编程
J2EE编程起步(3)
作者:佚名 发布时间:2005-04-02 来源:不详
 
  开发客户端                                                                   

  客户端程序ConverterC
括以下步骤:
lient是一个独立运行的Java应

用,创建ConverterClient主要包

  1. 客户端编码                                                             
  2. 客户端编译                                                             


                                                                             
  客户端编码                                                                   
  ConverterClient.java
源码展示了EJB客户端最基本的
任务实现,即:


  定位本地接口                                                                 

  创建企业组件(EJB)                                                       

  调用商业方法                                                                 


  定位本地接口                                                                 

  ConverterHome接口定
create方法之前ConverterH
义了EJB声明周期方法如create
ome对象必须被实例化,包括三
,在中ConverterClient 可以调用
个步骤:


  1. 创建JNDI命名上下文                                                 


  Context initial = new InitialCon
text();

  2. 查找与JNDI命名MyConverter绑定的对象                     

  java.lang.Object objref = initia
l.lookup("MyConverter");

  3. 限定指向ConverterHome对象的参考                           

  ConverterHome home =                                     
  (ConverterHome) Port
ableRemoteObject.narrow(objr
ef,
  ConverterHome.class);                                   

  创建企业组件(EJB)实例                                                   

  客户端通过调用本地接口ConvertHom
create 方法返回组件Converter类型的对
业方法可以被客户端调用。当客户端调用
后调用ConverterEJB.ejbCreate 方法。
e对象的create方法创建ConverterEJB类对象,
象。然后,远程方法定义的在ConverterEJB实现的商
create 方法时,EJB容器将实例化ConverterEJB,然


  Converter currencyCo
nverter = home.create();


  调用商业方法                                                                 

  完成上述任务后,调用
将相应的调用运行在J2EE服
dollarToYen的代码如下:
商业方法就比较简单了。你调用
务器中的ConverterEJB 例的方

Converter对象的方法, EJB容器
法。客户端调用商业方法



  double amount = curr
encyConverter.dollarToYen(10
0.00);
  ConverterClient源码                                            



  下面是ConverterClient.java的完整源码:                   


  import javax.naming.Context;                     
  import javax.naming.InitialContext;       
  import javax.rmi.PortableRemoteObject;

  import Converter;                                           
  import ConverterHome;                                   

  public class ConverterClient {                 

  public static void main(String[]
args) {
  try {                                                                   
  Context initial = new InitialCon
text();

  Object objref = init
ial.lookup("MyConverter");

  ConverterHome home =                                     
  (ConverterHome)Porta
bleRemoteObject.narrow(objre
f,
  ConverterHome.class);                                   

  Converter currencyConverter = ho
me.create();

  double amount = curr
encyConverter.dollarToYen(10
0.00);

  System.out.println(S
tring.valueOf(amount));
  amount = currencyConverter.yenTo
Euro(100.00);

  System.out.println(S
tring.valueOf(amount));

  currencyConverter.remove();                       

  } catch (Exception ex) {                             
  System.err.println("Caught an un
expected exception!");
  ex.printStackTrace();                                   
  }                                                                           
  }                                                                           
  }                                                                           
  编译客户端代码                                                               

  UNIX:                                                                   
  1. 在下面脚本compile
Client.sh, 对根据J2EE实际安
装目录作相应改动。

  #!/bin/sh                                                           

  J2EE_HOME=                                                         
  CPATH=.:$J2EE_HOME/lib/j2ee.jar               


  javac -classpath "$C
PATH" ConverterClient.java

  2. 运行脚本文件compileClient.sh                           


  Windows:                                                             
  1. 在下面批处理文件compileClient
.bat中,对根据实际J2EE安装目录进行修改。

  set J2EE_HOME=                                                 
  set CPATH=.;%J2EE_HOME%libj2ee.jar     


  javac -classpath %CP
ATH% ConverterClient.java

  2. 运行批处理文件compileClient.bat                       


  运行客户端                                                                   

  运行客户端你需要ConverterAppClie
实例通信所需的存根类,ConverterAppCl
nt.jar文件,该文件包含允许客户端与EJB容器中EJB
ient.jar 文件在部署J2EE应用过程中创建。


  UNIX:                                                                   
  1. 在下面脚本testClient.sh, 对根
据J2EE实际安装目录作相应改动。

  #!/bin/sh                                                           

  J2EE_HOME=                                                         
  CPATH=$J2EE_HOME/lib
/j2ee.jar:ConverterAppClient
.jar:.


  java -classpath "$CP
ATH" ConverterClient

  2. 运行脚本文件testClient.sh                                 


  Windows:                                                             
  1. 在下面批处理文件testClient.ba
t中,对根据实际J2EE安装目录进行修改。

  set J2EE_HOME=                                                 
  set CPATH=.;%J2EE_HOME%libj2ee
.jar;ConverterAppClient.jar


  java -classpath "%CP
ATH%" ConverterClient

  2. 运行批处理文件 testClient.bat                           


  常见问题处理                                                                 

                                                                             
  当运行ConverterClient 时发现下面错误:                       
  1. java.lang.ClassCastException               
  可能无法找到ConverterAppClient.jar文件。               
  2. java.lang.NoClass
DefFoundError: ConverterClie
nt
  无法定位ConverterClient.class 文件。                   
  3. java.lang.NoClass
DefFoundError: javax/naming/
Context
  无法找到所需的j2ee.jar 文件,确认CLASSPATH设置。           
  4. javax.naming.Name
NotFoundException: Lookup of
name MyConverter failed.
  J2EE服务器无法定位JNDI名字MyConverter所绑定的组件。       
  5. javax.naming.Nami
to ORB at . . . .
ngException: Error accessing

repository: Cannot connect

  J2EE服务器没有运行。                                                      

  
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·如何搭建J2EE开发环境  (2005-04-02)
 ·J2EE项目中如何组建开发团队  (2005-04-02)
 ·走向J2EE,漫长的道路  (2005-04-02)
 ·J2EE编程起步(1)  (2005-04-02)
 ·J2EE编程起步(2)  (2005-04-02)
 ·Web Service 和 J2EE  (2005-04-02)
 ·J2EE数据库设计入门  (2005-04-02)
 ·浅析J2EE、J2SE和J2ME  (2005-04-02)
 ·J2EE,好处多  (2005-04-02)
 ·解析J2EE应用体系  (2005-04-02)

   栏目导行
  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实现小结
 
关于帝国 | 广告服务 | 联系我们 | 程序开发 | 网站地图 | 留言板 帝国网站管理系统