国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

J2EE編程起步(3)

2019-11-18 12:30:05
字體:
來源:轉載
供稿:網友

  開發客戶端
  
  客戶端程序ConverterClient是一個獨立運行的java應用,創建ConverterClient主要包括以下步驟:
  1. 客戶端編碼
  2. 客戶端編譯
  
  
  
  客戶端編碼
  ConverterClient.java 源碼展示了EJB客戶端最基本的任務實現,即:
  
  
  定位本地接口
  
  創建企業組件(EJB)
  
  調用商業方法
  
  
  定位本地接口
  
  ConverterHome接口定義了EJB聲明周期方法如create,在中ConverterClient 可以調用create方法之前ConverterHome對象必須被實例化,包括三個步驟:
  
  
  1. 創建JNDI命名上下文
  
  
  Context initial = new InitialContext();
  
  2. 查找與JNDI命名MyConverter綁定的對象
  
  java.lang.Object objref = initial.lookup("MyConverter");
  
  3. 限定指向ConverterHome對象的參考
  
  ConverterHome home =
  (ConverterHome) PortableRemoteObject.narrow(objref,
  ConverterHome.class);
  
  創建企業組件(EJB)實例
  
  客戶端通過調用本地接口ConvertHome對象的create方法創建ConverterEJB類對象, create 方法返回組件Converter類型的對象。然后,遠程方法定義的在ConverterEJB實現的商業方法可以被客戶端調用。當客戶端調用create 方法時,EJB容器將實例化ConverterEJB,然后調用ConverterEJB.ejbCreate 方法。
  Converter currencyConverter = home.create();
  
  
  調用商業方法
  
  完成上述任務后,調用商業方法就比較簡單了。你調用Converter對象的方法, EJB容器將相應的調用運行在J2EE服務器中的ConverterEJB 例的方法。客戶端調用商業方法dollarToYen的代碼如下:
  
  
  double amount = currencyConverter.dollarToYen(100.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 InitialContext();
  Object objref = initial.lookup("MyConverter");
  
  ConverterHome home =
  (ConverterHome)PortableRemoteObject.narrow(objref,
  ConverterHome.class);
  
  Converter currencyConverter = home.create();
  
  double amount = currencyConverter.dollarToYen(100.00);
  System.out.PRintln(String.valueOf(amount));
  amount = currencyConverter.yenToEuro(100.00);
  System.out.println(String.valueOf(amount));
  
  currencyConverter.remove();
  
  } catch (Exception ex) {
  System.err.println("Caught an uneXPected exception!");
  ex.printStackTrace();
  }
  }
  }
  編譯客戶端代碼
  
  UNIX:
  1. 在下面腳本compileClient.sh, 對根據J2EE實際安裝目錄作相應改動。
  
  #!/bin/sh
  
  J2EE_HOME=
  CPATH=.:$J2EE_HOME/lib/j2ee.jar
  
  javac -classpath "$CPATH" ConverterClient.java
  
  2. 運行腳本文件compileClient.sh
  
  
  Windows:
  1. 在下面批處理文件compileClient.bat中,對根據實際J2EE安裝目錄進行修改。
  
  set J2EE_HOME=
  set CPATH=.;%J2EE_HOME%/lib/j2ee.jar
  
  javac -classpath %CPATH% ConverterClient.java
  
  2. 運行批處理文件compileClient.bat
  
  
  運行客戶端
  
  運行客戶端你需要ConverterAppClient.jar文件,該文件包含答應客戶端與EJB容器中EJB實例通信所需的存根類,ConverterAppClient.jar 文件在部署J2EE應用過程中創建。
  
  
  UNIX:
  1. 在下面腳本testClient.sh, 對根據J2EE實際安裝目錄作相應改動。
  
  #!/bin/sh
  
  J2EE_HOME=
  CPATH=$J2EE_HOME/lib/j2ee.jar:ConverterAppClient.jar:.
  
  java -classpath "$CPATH" ConverterClient
  
  2. 運行腳本文件testClient.sh
  
  
  Windows:
  1. 在下面批處理文件testClient.bat中,對根據實際J2EE安裝目錄進行修改。
  
  set J2EE_HOME=
  set CPATH=.;%J2EE_HOME%/lib/j2ee.jar;ConverterAppClient.jar
  
  java -classpath "%CPATH%" ConverterClient
  
  2. 運行批處理文件 testClient.bat
  
  
  常見問題處理
  
  
  當運行ConverterClient 時發現下面錯誤:
  1. java.lang.ClassCastException
  可能無法找到ConverterAppClient.jar文件。
  2. java.lang.NoClassDefFoundError: ConverterClient
  無法定位ConverterClient.class 文件。
  3. java.lang.NoClassDefFoundError: javax/naming/Context
  無法找到所需的j2ee.jar 文件,確認CLASSPATH設置。
  4. javax.naming.NameNotFoundException: Lookup of name MyConverter failed.
  J2EE服務器無法定位JNDI名字MyConverter所綁定的組件。
  5. javax.naming.NamingException: Error accessing repository: Cannot connect to ORB at . . . .
  J2EE服務器沒有運行。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 辽阳县| 桑植县| 鹤峰县| 海原县| 苏州市| 阜阳市| 闽清县| 桓台县| 嘉荫县| 修水县| 佛学| 密云县| 江孜县| 上高县| 南郑县| 凉城县| 泉州市| 汶川县| 阿克苏市| 通榆县| 遂川县| 政和县| 登封市| 汕尾市| 从化市| 灌阳县| 彭泽县| 岳西县| 梨树县| 军事| 区。| 江油市| 泗阳县| 南涧| 酒泉市| 大田县| 韶山市| 湟中县| 泰来县| 宁化县| 沾化县|