国产探花免费观看_亚洲丰满少妇自慰呻吟_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服務器沒有運行。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 醴陵市| 广州市| 英超| 扎赉特旗| 大渡口区| 元江| 遵义市| 当阳市| 凤山市| 兴安县| 磴口县| 平塘县| 博湖县| 钦州市| 南通市| 旅游| 光泽县| 和平县| 吴堡县| 文化| 郎溪县| 尚志市| 社旗县| 潼关县| 衡阳县| 河津市| 新竹市| 岗巴县| 定陶县| 扎赉特旗| 灵台县| 曲水县| 江陵县| 潞西市| 新绛县| 广东省| 邵武市| 扬州市| 崇文区| 社旗县| 特克斯县|