什麼是打包和部署? J2EE平台的主要特色之一在於開發人員可以在其之上整合不同的組件,這個將組件整合為模塊並將模塊整合為商業應用程序的過程叫做打包。而在一個可使用環境的安裝和定制應用程序的過程則叫做部署。
<!-- frame contents -->
<!-- /frame contents -->
為了能夠更好地被定制,應用程序的組件需要是可配置的,然而,開發人員不應該持續開發不同的配置機制,相反地,使用標准機制並對配置過程提供相當的靈活度是非常重要的。
J2EE平台為打包和部署提供了相應的工具,使得其過程相對簡單。主要來說,它使用Java檔案文件(JAR)作為組件和應用打包之後的標准整合結果,同時它還使用基於XML的描述文件來配置組件和應用程序。J2EE技術規范為J2EE應用程序的結構建立和生成提供了指導,其中一條原則就是與打包(packaging)有關,具體的技術規范為諸如EJB、jsp網頁和servlet等組件的打包提供了指導;J2EE平台規格描述提供一個將一個或多個組件集成為一個模塊的方法,即為任何組件類型的最小單元提供獨立部署,一個模塊可以直接部署至J2EE容器中,或多個模塊可以集合起來組建一個J2EE應用程序;例如,幾個ejb組件可以被打包為應用模型中的一個EJB模塊,同時這個EJB模塊也可以進一步與其他模塊結合以建造一個完整的J2EE應用。
J2EE打包綜述 一個J2EE應用程序包括下列部分:一個或者多個J2EE組件;一個J2EE應用程序實施描述符。 在一個或者多個異類J2EE組件需要彼此使用對方的時候,必須生成一個J2EE應用程序(application)。在建立一個J2EE應用程序時必須考慮到多個方面,其中包括:
1、可以打包成一個J2EE應用程序的J2EE組件類型;
2、當人們生成J2EE包時扮演的角色;
3、當前的J2EE打包限制;
進入討論組討論。
不同廠商為滿足J2EE組件交互而采用的類裝入方式。
1、用J2EE打包組件
<!-- frame contents -->
<!-- /frame contents -->
一個J2EE組件,例如servlet或EJB,是與組件描述中定義的接口保持一致的獨立功能軟件單位,並且這類軟件很明顯地依靠於其生存環境。組件也許是一個單一的類,但也經常是類、接口和資源的集合。J2EE平台提供五種類型的組件:EJB,servlets和JSP,applet,應用客戶程序以及連接器(connector)。
J2EE平台中的模塊和應用程序被作為部署單元而打包和部署,這種過程所得到的壓縮文檔與JAR文件類似,但具有一個指定的內部結構和文件擴展名。通常來說,存在四種不同類型的J2EE平台模塊:
(l)EJB模塊,其中包含ejb文件及相應類;EJB模塊是一個可實施的單元,包括EJB、關聯的庫JAR文件以及資源。 EJB模塊被預打包成JAR文件,在JAR文件的META-INF目錄中有一個實施描述符 (ejb-jar.xml)。
(2)Web模塊,其中包含Web層的組件及資源;Web模塊是一種可以實施的單元,由Java Servlets、JSP網頁、JSP標志庫、庫JAR文件、Html/XML文檔及其他公共資源如圖片,applet類文件等組成。一個Web模塊打包成一個Web ARchive file,也稱為一個WAR文件。WAR文件類似於JAR文件,只是WAR文件包含一個WEB-INF目錄,在web.xml文件中包含實施說明。
(3)應用客戶模塊,其中包含應用客戶類;應用程序客戶模塊JAR文件包含一個獨立的Java應用程序,它將要在應用程序客戶容器中運行。這個應用程序客戶JAR文件包含一個專門化的實施描述符,其構成與EJB JAR文件類似。JAR文件包含運行獨立的客戶所需的類,當然還包括訪問JDBC、JMS、JAXP、JAAS或者EJB客戶所需的任何客戶庫。