加入收藏 | 设为首页 | 会员中心 | 我要投稿 | RSS
您当前的位置:首页 > 阅读中心 > 软件学习

J2EE编程起步(3)

时间:2014-05-04 10:05:22  来源:不详  作者:佚名
 
  开发客户端                                                                   

  客户端程序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服务器没有运行。                                                      

来顶一下
返回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
推荐资讯
后牧工业区厂房1500平出租
后牧工业区厂房1500平
现实的童话公主艾米·罗森
现实的童话公主艾米·
科比专为大场面而生
科比专为大场面而生
“最美清洁工”原是《赤壁》宫女
“最美清洁工”原是《
相关文章
    无相关信息
栏目更新
栏目热门