程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> Windows2000下安裝J2EE和部署J2EE應用程序

Windows2000下安裝J2EE和部署J2EE應用程序

編輯:JAVA編程入門知識
   1. 安裝
  可以從以下網址下載一個J2EE(j2sdkee-1_3-beta2-win.exe):http://Java.sun.com/j2ee/j2sdkee-beta/index.Html。也許你已裝了舊版的J2EE SDK 產品,假如是,在安裝新下載的J2EE之前請先卸載或刪掉舊版的J2EE SDK。運行j2sdkee-1_3-beta2-win.exe,按安裝步驟安裝好J2EE。這裡假設你的J2EE安裝在:C:j2sdkee1.3 目錄下。
  
  2. 設置環境變量
  在運行J2EE SDK之前,你必須設置以下環境變量:
  J2EE_HOME - 你的J2EE SDK所安裝的目錄。如本例中的:C:j2sdkee1.3 。
  JAVA_HOME - 你的Java 2 SDK 所安裝的目錄。
  PATH - 設置為你安裝J2EE SDK目錄下的bin目錄。如本例的的:C:j2sdkee1.3in 。
  ClassPath - 增添%J2EE_HOME%libj2ee.jar到ClassPath中。本例中也可寫為:C:j2sdkee1.3libj2ee.jar
  
  3. 運行J2EE
  Dos命令行敲入以下命令:
  %J2EE_HOME%inj2ee -verbose
  顯示以下信息表示運行成功:(不同的版本顯示可能不同)
  J2EE server listen port: 1050
  Naming service started:1050
  Binding DataSource, name = jdbc/EstoreDB, url = jdbc:cloudscape:rmi:CloudscapeDB;create=true
  Binding DataSource, name = jdbc/DB2, url = jdbc:cloudscape:rmi:CloudscapeDB;create=true
  Binding DataSource, name = jdbc/Cloudscape, url = jdbc:cloudscape:rmi:CloudscapeDB;create=true
  Binding DataSource, name = jdbc/InventoryDB, url = jdbc:cloudscape:rmi:CloudscapeDB;create=true
  Binding DataSource, name = jdbc/DB1, url = jdbc:cloudscape:rmi:CloudscapeDB;create=true
  Binding DataSource, name = jdbc/XACloudscape, url = jdbc/XACloudscape__xa
  Binding DataSource, name = jdbc/XACloudscape__xa, dataSource = COM.cloudscape.core.RemoteXaDataSource@330913
  Starting JMS service ... Initialization complete - waiting for client requests
  Binding : < JMS Destination : jms/Queue , javax.jms.Queue >
  Binding : < JMS Destination : jms/Topic , javax.jms.Topic >
  Binding : < JMS Cnx Factory : jms/TopicConnectionFactory , Topic , No properties >
  Binding : < JMS Cnx Factory : TopicConnectionFactory , Topic , No properties >
  Binding : < JMS Cnx Factory : jms/QueueConnectionFactory , Queue , No properties >
  Binding : < JMS Cnx Factory : QueueConnectionFactory , Queue , No properties >
  Starting web service at port:8000
  Starting secure web service at port:7000
  Apache Tomcat/4.0-b4-dev
  Starting web service at port:9191
  Apache Tomcat/4.0-b4-dev
  J2EE server startup complete.
  
  啟動成功後,在IE浏 覽 器 中 訪 問 HTTP://localhost:8000 可 以 看 到 默 認 的 主 頁 信 息 。
  
  4. 編寫和運行HelloWorld程序
  J2EE應用程序一般使用RMI(遠程方法調用)來完成客戶端與服務器的交互。當然,其間也少不了EJB的作用。本例為一個J2EE應用程序:客戶端向服務器發送一個問候語:“Hello,Remote Object”。服務器收到該問候語後打印該問候語,並返回一字符串作為應答。客戶端收到此應答後打印它。
  
  RemoteInterface.java
  
  /**
  * 第一步:
  * 定義一個新的接口繼續javax.ejb.EJBObject。新定義的接口中的每一個方法都必須拋出
  * java.rmi.RemoteException異常。
  */
  public interface RemoteInterface extends javax.ejb.EJBObject
  {
  public String message(String str)throws java.rmi.RemoteException;
  }
  
  RemoteObject.java
  
  /**
  * 第二步:
  * 定義一個類來實現javax.ejb.SessionBean接口。並在該類中實現在第一步中編寫的接口中所定義的方法。
  */
  public class RemoteObject implements javax.ejb.SessionBean
  {
  public String message(String str)throws java.rmi.RemoteException
  {
  System.out.println("Remote Object Received From Client: ""+str+"""); //打印(從客戶端)接收到的字符串。
  return "Hello,I'm Remote Object,I received your message: '"+str+"'"; //返回一應答字符串。
  }
  
  public RemoteObject() {}
  public void ejbCreate() {}
  public void ejbRemove() {}
  public void ejbActivate() {}
  public void ejbPassivate() {}
  public void setSessionContext(javax.ejb.SessionContext sc) {}
  }
  
  RemoteHome.java
  
  /**
  * 第三步:
  * 定義一個類繼續javax.ejb.EJBHome 。
  */
  public interface RemoteHome extends javax.ejb.EJBHome
  {
  RemoteInterface create()throws java.rmi.RemoteException,javax.ejb.CreateException;
  }
  
  Client.java
  
  /**
  * 第四步:
  * 定義客戶端類。
  */
  public class Client
  {
  public static void main(String[] args)
  {
  try
  {
  javax.naming.Context initContext=new javax.naming.InitialContext();
  Object obj=initContext.lookup("HelloWorld"); //遠程查找,由名字得到對應的對象。
  RemoteHome home=(RemoteHome)javax.rmi.PortableRemoteObject.narrow(obj,RemoteHome.class);
  RemoteInterface remote=home.create();
  String receiveFromRemote=remote.message("Hello,Remote Object!"); //遠程方法調用
  System.out.println("Client Received From Remote Object: ""+receiveFromRemote+""");
  }
  catch(Exception e)
  {
  e.printStackTrace();
  }
  }
  }
  
  假設以上四個Java文件存於C:HelloWorld下,編譯它們如:C:HelloWorld>javac *.java 。
  
  5. 部署應用程序
  啟動Application Dopolyment Tool:新開一個Dos窗口,鍵入以下命令,%J2EE_HOME%indeploytool 。該工具啟動速度可能比較慢,要耐心等待。啟動成功後會出現主界面(此時不要關閉Dos窗口)。在該界面中選 擇 File菜 單 ,再選New Application項。在 Application File Name 輸 入 :C:HelloWorldHelloWorld.ear 。在 Application Disply Name 輸 入 你所喜歡的顯示名如:HelloWorld。點 擊 OK,在主界面的樹形結構Files-->Applications下將增加新的一項:HelloWorld。這意味著產生了一個新的應用程序。接下來我們要做的就是部署該應用程序。在主界面的樹形結構下選中HelloWorld,然後再在主界面的File菜單中選取New-->Enterprise Bean,在彈出的名為“New Enterprise Bean - IntrodUCtion”窗口中選取Next跳過第一步,在接下來的一步中,Create New EJB File in Application項中選HelloWorld,在EJB Display Name中填上你喜歡的名字如:Hello World EJB,點擊Edit按鈕,在彈出的窗口中,Start Directory中填:C:HelloWorld,在Available Files中展開樹形結構C:HelloWorld,選取RemoteInterface.class、RemoteObject.class、RemoteHome.class、Client.class四項,點Add按鈕添加,然後按OK確定。此時在Contents框中增加了該四個class。點Next進入下一步。Session項選Stateless,意為不保存session狀態。Enterprise Bean Class選RemoteObject。Enterprise Bean Name中填上你喜歡的名字如:Hello World Bean。Remote Home Interface中選RemoteHome,Remote Interface中選RemoteInterface。選Next進入下一步。接下來的步驟可直接點Finish。這時主界面的樹形結構中Files-->Application-->Hello World中將出現Hello World EJB-->Hello World Bean子項。在主界面的樹形結構下選中Hello World,然後再在主界面的Tools菜單中選取Deploy,將彈出新的窗口名為“Deploy Hello World - Introduction”。Object to deploy中選Hello World,Target server中選localhost,選中Retuen Client Jar,在Client Jar File Name中填上:C:HelloWorldHelloWorldClient.jar。選Next進入下一步,在Application框的JNDI Name框中雙擊並填上HelloWorld,注重必須與Client.java中Object obj=initContext.lookup("HelloWorld")的“HelloWorld”保持一致。點Next進入下一步。點Finish完成。這時將出現Deployment Progress窗口。假如有誤,該窗口將出現異常信息。假如一切正常,點OK便完成了部署工作。
  
  6. 運行應用程序
  新開一個Dos窗口。進入C:HelloWorldClasses目錄下運行:C: HelloWorldClasses>java -classpath %J2EE_HOME%libj2ee.jar;.;HelloWorldClient.jar; Client 。運行成功則出現如下信息:Client Received From Remote Object: "Hello,I'm Remote Object,I received your message: 'Hello,Remote Object!'" 。而服務端Dos窗口(j2ee -verbose)中出現如下信息:Remote Object Received From Client: "Hello,Remote Object!" 。
  
  本程序很適J2EE的入門,簡單而明了。本程序由Charly設計編寫,並由其本人多次運行確保無誤。如不能正常運行,請檢查你的環境變量設置是否正確,最好不要直接將以上各命令Copy到Dos窗口中運行,某些字符可能受中文全角字符的影響而不被識別。另外假如某個應用程序部署不成功,可以
 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved